如何正确序列化自动生成的 WCF 类型
本文关键字:WCF 类型 自动生成 何正确 序列化 | 更新日期: 2023-09-27 18:32:32
我正在使用带有代码的 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.
通常我会通过向 PropertyChanged
事件添加 [NonSerializable]
来处理此异常,但这里的代码是自动生成的,我不想更改它。
处理此问题的最佳方法是什么?
听起来
你正在使用BinaryFormatter
- 但是,WCF 类型用于使用 DataContractSerializer
或相关的序列化程序(NetDataContractSerializer
、protobuf-net 等)进行序列化。尝试改用DataContractSerializer
- 您的问题应该会消失。