我正在编写一个需要确定类是否具有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;
}