我在一个项目中创建了一个用于访问我的 WCF 服务的客户端,并且所有使用服务的类都继承自这个类:
public abstract class ServiceClient<TServiceClient> : IDisposable where TServiceClient : ICommunicationObject
这个类是我做一些事情的地方,比如在调用客户端时进行处理、记录等等。所有服务类通常都会做的一些常见事情。
一切正常,直到我得到在旧系统上实现它的任务。当我在另一个无法引用的项目中使用这个项目 (DLL) 时遇到了一个问题System.ServiceModel
(因为它是我仍然维护的旧 .NET 2.0 软件,将其升级到 3.0 是不可能的)。在这里,如果我省略,where TServiceClient : ICommunicationObject
则项目可以构建,但ServiceClient
不能使用,例如,client.Close()
或client.State
那么,我唯一的解决方案是删除该where
语句并重写服务类吗?