2011-03-30 88 views
3
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必須是引用類型

T是一個接口的引用。

這是我希望的行更改爲使用新的基類

public class EchoServiceClient : 
    System.ServiceModel.ClientBase<IEchoService>, IEchoService 

我怎樣才能解決這個問題?謝謝

回答

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約束。

+0

完美,謝謝。我現在在對象查看器中看到:類限制。感謝您也指出了這一點。 – 2011-03-30 23:02:06

0

你不能使用那裏的接口。你需要一個具體的實現IEchoService

相關問題