我有大量具有序列化属性的类,如下所示:
[XmlRoot(...)]
public MyClass { }
或
[XmlType(...)]
public MyClass { }
或者无论存在什么。如何获得具有xml-serializer-information的所有类型?我尝试检查类型是否实现IXmlSerializable
,但这只给了我一些,因为大多数类只设置了这些属性,而没有明确地实现接口。
有没有办法让所有那些具有这种属性的类型?
编辑:我知道我可以通过在类型上使用GetCustomAttributes
来获取具有特殊属性的类。这对我来说似乎不方便,因为我必须知道所有这些属性(XmlRoot
,XmlType
,XmlInclude
,任何可以应用于类的缺失?)。此外,这样的查询会非常难看:
if (type.GetCustomAttribute(typeof(XmlRoot)).Length > 0 ||
type.GetCustomAttribute(typeof(XmlType)).Length > 0 ||
type.GetCustomAttribute(typeof(XmlRoot)).Length > 0)
说完这个后,我希望得到另一个解决方案。