public class _Base_Client<T> : System.ServiceModel.ClientBase<T>
它抱怨The type 'T' must be a reference type in order to use it as parameter 'TChannel'
T是对接口的引用。
以下是我希望更改为使用新基类
的行public class EchoServiceClient :
System.ServiceModel.ClientBase<IEchoService>, IEchoService
我该如何解决这个问题?感谢
答案 0 :(得分:10)
变化:
public class _Base_Client<T> : System.ServiceModel.ClientBase<T>
要:
public class _Base_Client<T> : System.ServiceModel.ClientBase<T> where T : class
类中的约束必须至少与其基类(ClientBase
)中定义的约束一样严格。也就是说,这是ClientBase
:
public abstract class ClientBase<TChannel> : ICommunicationObject,
IDisposable where TChannel : class
注意class
约束。
答案 1 :(得分:0)
你不能在那里使用界面。您需要IEchoService
的具体实现。