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

标签 c# wcf events serialization reflection

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

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

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

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

通常我会通过将 [NonSerialized] 添加到 PropertyChanged 事件来处理此异常,但这里的代码是自动生成的,我不想改变它。

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

最佳答案

听起来您正在使用 BinaryFormatter - 但是,WCF 类型旨在使用 DataContractSerializer 或相关序列化程序(NetDataContractSerializer、protobuf)进行序列化-网络等)。尝试使用 DataContractSerializer 代替 - 您的问题应该会消失。

关于c# - 如何正确序列化自动生成的 WCF 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10375116/

相关文章:

winforms - WinForms 客户端和共享主机 Web 服务器之间的 WCF 安全性

c# - 如何调试由 Windows 服务托管的 WCF 服务?

wpf - 如何处理父控件中的子事件

c# - 使用静态可见性枚举作为命令参数

c# - 真正的模态窗口可能吗?

c# - WebService Post 在模拟器上工作但不在设备上工作

c# - 在 Windows 窗体应用程序中调整标签大小

c# - 使用 Parallel.Foreach 的最短项目处理时间

c# - 我可以将 WCF DataContract 添加到复杂类型吗?

events - EasyUI datagrid 发送不需要的请求