public class _Base_Client<T> : System.ServiceModel.ClientBase<T>
Run Code Online (Sandbox Code Playgroud)
它抱怨说 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
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?谢谢
Kir*_*oll 10
更改:
public class _Base_Client<T> : System.ServiceModel.ClientBase<T>
Run Code Online (Sandbox Code Playgroud)
至:
public class _Base_Client<T> : System.ServiceModel.ClientBase<T> where T : class
Run Code Online (Sandbox Code Playgroud)
类中的约束必须至少与其基类(ClientBase)中定义的约束一样严格.即,这是宣言ClientBase:
public abstract class ClientBase<TChannel> : ICommunicationObject,
IDisposable where TChannel : class
Run Code Online (Sandbox Code Playgroud)
注意class约束.