我有几个我序列化/反序列化的类,每个类都有许多属性,其中一些我想动态使用“Xml.Serialization.XmlIgnore”属性。我的想法是,如果我想保存特定的属性信息,我通过设置/清除标志来管理它。这甚至可能吗?
答案 0 :(得分:3)
是的,这可以通过使用XmlAttributesOverrides类来实现。它允许您动态生成属性,而不是在源代码中指定它们。该课程的MSDN Library article就是一个很好的例子。
答案 1 :(得分:2)
是否可以动态启用/禁用.net属性?
没有。属性在编译时在程序集元数据处烘焙。您需要实现自定义序列化。
您能想象一下在运行时添加/删除属性的后果吗?您可以通过删除Serializable类中的String属性或在同一类中将ComVisible属性设置为false
来引发灾难: - )