XML反序列化派生类

时间:2016-12-16 08:07:52

标签: c# xml

有人可以帮我反序列化并构建模型吗?使用这个xml:

<event>
    <argument  type="Type1" id="1" name="test1"/>
    <argument  type="Type2" id="1" extra="5"/>
</event>

活动类

[XmlType("event")]
public class Event
{
    [XmlElement("argument")]
    public List<Argument> Arguments { get; set; }
}

参数类

public abstract class Argument
{
    [XmlAttribute("id")]
    public int Id { get; set; }
}

Type1 class

public class Type1 : Argument
{
    [XmlAttribute("name")]
    public string Name { get; set; }
}

Type2 class

public class Type2 : Argument
{
    [XmlAttribute("extra")]
    public string Extra { get; set; }
}

内部异常:

  

{&#34;指定的类型是摘要:name =&#39; Argument&#39 ;, namespace =&#39;&#39;,at。&#34;}

也许我不必使用自定义反序列化器,我只想根据&#34;类型&#34;反序列化对象。属性值。

反序列化我使用的方式:

 public static T XmlDeserializeFromString<T>(this string objectData)
    {
        return (T)XmlDeserializeFromString(objectData, typeof(T));
    }

var obj = xml.XmlDeserializeFromString<Event>();

0 个答案:

没有答案