0

我在一个项目中创建了一个用于访问我的 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语句并重写服务类吗?

4

2 回答 2

1

如果您无法将该项目升级到 3.0,那么这个(或包装类)似乎是您唯一的选择。

于 2010-06-14T13:50:51.450 回答
0

是什么阻止你升级?3.0 并不是真正的新版本框架,它只是一些额外的 dll。您的 2.0 代码将像以前一样使用相同的 .net 库运行。

于 2010-06-14T13:55:23.400 回答