具有DataContract属性

具有DataContract属性

我正在编写一个需要确定类是否具有DataContract属性的序列化函数。如果类具有DataContract属性,则函数基本上将使用DataContractSerializer,否则将使用XmlSerializer。

谢谢你的帮助!

最佳答案

测试DataContractAttribute的最简单方法可能是:

bool f = Attribute.IsDefined(typeof(T), typeof(DataContractAttribute));

就是说,既然DC支持POCO序列化,则还不完整。 DC可串行化性的更完整测试是:
bool f = true;
try {
    new DataContractSerializer(typeof(T));
}
catch (DataContractException) {
    f = false;
}

09-30 23:25