是否可以动态配置XML序列化?

时间:2010-09-23 18:41:03

标签: .net serialization attributes

我有几个我序列化/反序列化的类,每个类都有许多属性,其中一些我想动态使用“Xml.Serialization.XmlIgnore”属性。我的想法是,如果我想保存特定的属性信息,我通过设置/清除标志来管理它。这甚至可能吗?

2 个答案:

答案 0 :(得分:3)

是的,这可以通过使用XmlAttributesOverrides类来实现。它允许您动态生成属性,而不是在源代码中指定它们。该课程的MSDN Library article就是一个很好的例子。

答案 1 :(得分:2)

  

是否可以动态启用/禁用.net属性?

没有。属性在编译时在程序集元数据处烘焙。您需要实现自定义序列化。

您能想象一下在运行时添加/删除属性的后果吗?您可以通过删除Serializable类中的String属性或在同一类中将ComVisible属性设置为false来引发灾难: - )