【问题标题】:How to ensure that object can be serialized to xml如何确保对象可以序列化为xml
【发布时间】: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


【解决方案1】:

这里有一些代码展示了如何使用 isSerializable 属性:http://msdn.microsoft.com/en-us/library/system.type.isserializable(v=vs.110).aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-03
    • 2019-03-04
    • 2018-10-11
    • 2017-08-20
    • 2011-01-07
    • 2017-07-16
    • 2011-05-06
    相关资源
    最近更新 更多