我是WCF的新手,目前我正在開發一個TCP WCF服務,我不確定我是否理解正確傳遞參數,因此我建議您進行評論並給出標準化的方式。在WCF中傳遞複雜類型的標準方式是什麼?
爲了弄清事情,我開發了一個小型服務,用於測試目的,它具有單一方法,並且依賴於暴露單個類的外部.Net dll。 服務合約代碼
[ServiceContract]
public interface IMyService
{
[OperationContract]
int Test1(actionType at, calculationType ct, action a);
[OperationContract]
int Test2(DataSeries s);
}
凡actionType
,calculationType
,action
是在外部DLL 和DataSeries
內部聲明枚舉是DLL內聲明的類。
dll中DataSeries
類的原始定義僅在其成員上標記爲[Serializable]
而沒有標記爲[DataMember]
。
我使用的客戶端和服務器端的3號的dll,我驚訝的是沒有把[DataContract]
在DataSeries類,並沒有使用任何的[EnumMember]
內部枚舉,[DataMember]
類裏面做工精細兩個應用程序。
那麼是怎麼回事?
另一個實驗:
從客戶端刪除的第三方,並使用該服務,因爲它是 我發現VS2008生成枚舉和DataSeries
類,並用正確的屬性,市場上贏得他們? 像
[System.CodeDom.Compiler.GeneratedCodeAttribute ("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="actionType", Namespace="http://schemas.datacontract.org/2004/07/DBInterface")]
public enum actionType : int {
[System.Runtime.Serialization.EnumMemberAttribute()]
All = 0,
[System.Runtime.Serialization.EnumMemberAttribute()]
Buy = 1,
[System.Runtime.Serialization.EnumMemberAttribute()]
Sell = 2,
}
這是一個很好的答案,你能推薦鏈接/網站或書籍,給我詳細的信息關於WCF或MSDN是足夠的嗎? – 2009-05-02 13:20:28