我學習WCF和我今天所面臨的挑戰之一是實現這一設計:當WCF,系列化,只讀成員
[DataContract]
public class MyOwnFaultException : FaultException<MyResult>
{
public MyOwnFaultException(MyResult result) : base(result) {}
}
[DataContract]
public class MyResult
{
readonly DefinedResults dres;
public MyResult(DefinedResults res) {
dres = res;
}
[DataMember]
public DefinedResults DRes
{
get { return this.dres; }
//do not want to have the setter for this, but w.o it .net throws exception
}
}
[DataContract]
public enum DefinedResults
{
Success = 0,
Fail = 1,
}
服務
[OperationContract]
[FaultContract(typeof(MyOwnFaultException))]
void TestRemoteException();
因此,很自然我嘗試創建一個對我的'錯誤'服務的引用,我得到了「不爲DRes成員設置成員」的例外情況。但是,如何將只讀字段模式實現爲用於結果指示符的值對象?
實際上,對於DataContractSerializer的,類做**不**不需要任何參數的構造函數(這僅適用於XmlSerializer的)....見http://www.danrigsby.com/blog/index.php/2008/03/07/xmlserializer-vs-datacontractserializer-serialization-in-wcf/解釋 – 2011-01-20 20:45:25
@marc:謝謝,我不知道,但通過閱讀文章是有道理的。 – 2011-01-20 23:01:36