如何正确序列化自动生成的WCF类型

时间:2012-04-29 19:12:45

标签: c# wcf events serialization reflection

我正在使用带有代码的WCF服务,该代码是从mex端点生成的。

我希望能够序列化自动生成的类。

我的问题是,那些自动生成的类实现了System.ComponentModel.INotifyPropertyChanged接口,偶尔在序列化它们时,我会遇到以下异常:

Type 'System.ComponentModel.PropertyChangedEventManager' in 
Assembly 'WindowsBase, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35' is not marked as serializable.

通常我会通过向[NonSerializable]事件添加PropertyChanged来处理此异常,但此处代码是自动生成的,我不想更改它。

解决这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

听起来您正在使用BinaryFormatter - 但是,WCF类型用于与DataContractSerializer或相关序列化程序(NetDataContractSerializer,protobuf-net等)进行序列化。请尝试使用DataContractSerializer - 您的问题应该消失。