2011-12-02 147 views
0

只需要一些幫助。將自定義對象從WCF服務傳遞到客戶端

我已經寫了一個WCF服務,它通過自定義對象列表(這些對象被標記爲可序列化,所以他們通過很好)。

我需要在客戶端寫入什麼才能夠接收這些對象?我希望能夠在沒有本地定義類的情況下接收它們。我試圖讓他們爲對象,但我得到的錯誤

無法隱式轉換類型「System.Collections.Generic.List < TestService.Member>」到「System.Collections.Generic.List <對象>」

希望這是足夠的信息,任何指針都會有用。

+1

什麼是您的WCF接口是什麼樣子?您應該能夠簡單地更新服務參考。它會爲你創建代理類。 – Amy

+0

只需 [OperationContract] List GetAllMembers(); – Coesy

回答

0

我認爲你需要做兩件事情:

1)創建從System.Collections.Generic.List

2繼承了這個集合類的自定義類)裝飾這個新類CollectionDataDataContract

3)在客戶端中,編輯reference.svcmap並將此新項目的條目添加到CollectionMappings部分。要找到svcmap,顯示項目中的所有文件並展開WCF服務引用。

對於類:

[CollectionDataContract] 
public class MemberCollection: List<Member> 

對於svcmap:

<CollectionMapping TypeName="MyNameSpace.MemberCollection" Category="List" /> 
+0

所以如果我這樣做,客戶會看到什麼? – Coesy

+0

您應該能夠將成員類和集合源代碼鏈接到客戶端項目,然後客戶端項目將能夠使用這些類的完整功能,而無需將業務邏輯或非序列化成員重新添加到WCF生成的類。 –

相關問題