继承泛型类T必须是引用类型

Val*_*mas 3 c# generics

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约束.