2014-02-25 31 views
0

我希望我錯過了一些明顯的東西,有人會在這裏指出我。無法在便攜式類庫中創建WCF頻道

我創建了一個包含我的WCF服務以及它使用的DTO的PCL。這個想法是在服務器上引用它並實現該服務,並在客戶端引用它,並使用類似ChannelFactory<T>的內容來創建通道並進行WCF調用。

我可以在標準類庫中沒有問題的情況下做到這一點,但PCL有可用類的有限子集,而且我嘗試使用的大多數類都是抽象的。

有人可以幫我嗎? 謝謝

回答

4

ChannelFactory<T>在您針對Windows 8(WinRT)或Silverlight的情況下不適用於PCL。一切都假定用ClientBase<T>完成。這確實很吸引人,因爲它創造了很多關於事物的儀式,但是如果您在Visual Studio中使用「Service Reference」功能(命令行上的svcutil.exe),它將爲您生成必要的管道。

請注意,如果您能夠刪除Silverlight並且還能夠使用Windows 8.1兼容性,您將收到ChannelFactory<T>

+0

我的目標是.NET 4.5,Silverlight 4及更高版本,Windows Phone 7及更高版本以及.NET Store應用程序。 'System.ServiceModel'命名空間對我來說是可用的,但只有一部分類是可用的。這與System.ServiceModel.dll不同,它與4.5框架中的程序集不同。 –

+0

啊,對不起,您正在尋找ChannelFactory * *,並且在針對WinRT的PCL中不存在此問題,請更新我的答案。 –

+0

我試圖避免使用服務引用。我打算將此程序集提供給其他想要針對我的服務編寫應用程序的開發人員。你是否建議我只是創建這個參考來找出它的工作原理?我做了,雖然我不想說這是不可能的,但我覺得我只是在重新發明輪子。 –