我構建了許多WCF服務作爲應用程序的一部分。直到最近,大多數用作服務中的許多操作的參數的類沒有將DataContract或DataMember屬性應用於它們。爲什麼WCF突然需要DataContractAttributes?
現在,我已經連續做了一些更改,突然之間WCF抱怨說他無法序列化我的類。
有沒有人知道如果在配置甚至在ServiceContract,OperationContract等的任何變化可以導致WCF變得挑剔有關它可以序列化的類?
我寧願不需要這些類中的屬性(它們應該是純C#類儘可能)。另外值得注意的是,如果我在源代碼控制中返回到以前的版本,WCF將回到「正常」狀態,所以我相信它不是機器/環境的東西。
從.NET 3.5 SP1開始,WCF就不再需要在單個字段上使用'[DataMember]'來進行序列化。但是,如果你的班級在某處使用了「[DataMember]」,那麼你需要在任何地方使用它。但據我所知,這種行爲在.NET 4.5中並沒有改變(例如,如果你願意,你應該很好*沒有* [DataMember]) –