获取可序列化的类型

时间:2015-06-19 13:35:55

标签: c# xml-serialization

我有大量具有序列化属性的类,如下所示:

[XmlRoot(...)]
public MyClass { }

[XmlType(...)]
public MyClass { }

或者无论存在什么。如何获得具有xml-serializer-information的所有类型?我尝试检查类型是否实现IXmlSerializable,但这只给了我一些,因为大多数类只设置了这些属性,而没有明确地实现接口。

有没有办法让所有那些具有这种属性的类型?

编辑:我知道我可以通过在类型上使用GetCustomAttributes来获取具有特殊属性的类。这对我来说似乎不方便,因为我必须知道所有这些属性(XmlRootXmlTypeXmlInclude,任何可以应用于类的缺失?)。此外,这样的查询会非常难看:

if (type.GetCustomAttribute(typeof(XmlRoot)).Length > 0 || 
    type.GetCustomAttribute(typeof(XmlType)).Length > 0 ||
    type.GetCustomAttribute(typeof(XmlRoot)).Length > 0)

说完这个后,我希望得到另一个解决方案。

0 个答案:

没有答案