我在週末測試了幾件事情,並且製作了以下自定義對象。WCF上的自定義類對象
人
int Age;
string HairColor;
時間的緣故,我沒有顯示在這裏,但在類的get/set代碼,它的存在。該類在Winforms應用程序中工作得很好。
現在我想要做的是採取完全相同的類(它駐留在DLL中)並允許WCF服務將其返回給客戶端。
我該怎麼做?我可以只使用WCF服務引用DLL,還是需要做一些特殊的事情?
我在週末測試了幾件事情,並且製作了以下自定義對象。WCF上的自定義類對象
人
int Age;
string HairColor;
時間的緣故,我沒有顯示在這裏,但在類的get/set代碼,它的存在。該類在Winforms應用程序中工作得很好。
現在我想要做的是採取完全相同的類(它駐留在DLL中)並允許WCF服務將其返回給客戶端。
我該怎麼做?我可以只使用WCF服務引用DLL,還是需要做一些特殊的事情?
如果你想序列化類,因此它可以被用作一個WCF服務調用的參數,你必須:
,或者如果你需要什麼獲取序列化更多的控制權:
[DataContract]
屬性(類一級)類(ES)和裝飾的每個項目你希望有序列化(公開與否,屬性或字段)與[DataMember]
屬性的明確裝修用[DataContract]/[的DataMember]屬性有一些明顯的優勢:
當然,有沒有免費的午餐 - 這意味着你必須去裝飾你想要的WCF方法的參數使用的類和/或返回類型。
嗯,實際上它是從WCF返回給客戶端,客戶端並沒有將它發送給WCF。儘管這可能在未來發生。 – Phillip 2011-02-06 16:55:36
@Philip:沒有什麼區別 - 無論是從服務器發送到客戶端還是其他方式 - 爲了讓WCF知道如何序列化數據,非常需要DataContract。如果你已經有了。.NET類以及需要發送的所有屬性都是您的類上的公共屬性,那麼您應該沒問題 - 只需引用現有的DLL並開始吧! – 2011-02-06 18:02:31
創建public
類的WCF [ServiceContract]
public Person{
public int Age { get; set; }
public string HairColor { get; set;}
}
這應被自動序列化。
爲什麼不嘗試它並找出?你已經知道答案。 – 2011-02-05 17:15:51