如何在C#中使用xml序列化事件

时间:2011-05-07 07:17:49

标签: c# .net events xml-serialization

我在课堂上有一些活动。当我使用NetDataContractSerializer序列化它们时,事件没有被序列化。有没有什么方法可以xml序列化像BinarySerializer这样的事件?

2 个答案:

答案 0 :(得分:3)

不,没有办法。 XML格式不保留类型信息,例如BinarySerializer。与二进制序列化程序使用的二进制格式相反,XML是一种可互操作的格式,并且因为事件是特定于.NET的工件,所以它们无法传输。

答案 1 :(得分:1)

不要盲目地序列化代表和事件

  

通常,你不应该序列化你的   班级的代表或活动。这是   因为序列化使他充满了   对象图进入游戏和代表   本质上将序列化你的   订户列表进入组合   (调用列表)。你永远做不到   确定你的所有订阅者都是   可序列化的,可以吗?

     

所以,你应该打开[NonSerialized]   代表。

     

关于事件(使用event关键字)你   

可以使用      

[Field:NonSerialized]属性   (“Field”在System.Reflection中)   

Source