自定义XML反序列化器

时间:2018-07-16 10:07:27

标签: c# xml generics serialization xml-deserialization

我正在尝试从Web服务读取xml字符串并将其反序列化。 每个请求的响应都有一些公共节点和一些更改的节点,我只需要公共节点,然后我创建了一个包含公共属性的类,因此Deserialize上有异常,因为不能查找每个节点的属性。 如何自定义Deserialize以仅反序列化该类中的现有属性?

public static T ParseXml<T>(string xmlString) where T : class, new()
    {
        try
        {
            var reader = XmlReader.Create(ToStream(xmlString.Trim()), new XmlReaderSettings()
            {
                ConformanceLevel = ConformanceLevel.Document

            });
            return new Xml.XmlSerializer(typeof(T)).Deserialize(reader, new Xml.XmlDeserializationEvents()) as T;
        }
        catch (Exception ex)
        {
            return new T();
        }
    }

0 个答案:

没有答案