【发布时间】:2014-02-18 12:36:09
【问题描述】:
我有这个方法可以保证对象可以序列化成二进制文件:
public static bool IsSerializable<T>(this T obj)
{
return typeof (T).Attributes.HasFlag(TypeAttributes.Serializable) || obj is ISerializable;
}
但我不能对 XML 做同样的事情。比如我可以这样写
public static bool IsXmlSerializable<T>()
{
var type = typeof (T);
return type.GetInterface("IXmlSerializable") != null;
}
但是我如何检查是否使用了 XmlType 属性或其他内容?
请指教。
【问题讨论】:
-
你可以序列化任何东西,这就是为什么。
-
请注意您的第一个版本实际上并不正确——它不会检查包含或继承自的任何对象。它可能仍然失败!最简单的实际上是尝试序列化并检查异常。
-
@Sinatr 你是对的,tnx。
-
@Jaapjan 大声笑,我认为类型属性继承......太奇怪了。但无论如何都要 tnx 获取信息
标签: c# .net xml serialization xml-serialization