小编for*_*rte的帖子

反序列化xml,包括命名空间

我试图反序列化一些XML,我无法获得命名空间/ xsi:type="Model"工作.如果xsi:type="Model"它不在XML中,它可以工作,但它必须在那里.如果我将命名空间从模型中删除,我会收到错误,如果我重命名它,我会得到一个空列表.

XML

<Vehicles xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Vehicle xsi:type="Model">
        <Id>238614402</Id>
    </Vehicle>
    <Vehicle xsi:type="Model">
        <Id>238614805</Id>
    </Vehicle>
</Vehicles>
Run Code Online (Sandbox Code Playgroud)

模型

[XmlRootAttribute("Vehicles")]
public class Vehicles
{
    public Vehicles() 
    {
        Vehicle = new List<Vehicle>();
    }

    [XmlElement(ElementName = "Vehicle", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public List<Vehicle> Vehicle { get; set; }
}


public class Vehicle
{
    [XmlElement("Id")]
    public int Id { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

反序列化

XmlSerializer serializer = new XmlSerializer(typeof(Vehicles));
string carXML = "<Vehicles xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Vehicle  xsi:type=\"Model\"> <Id>238614402</Id> </Vehicle><Vehicle  xsi:type=\"Model\"> <Id>238614805</Id> </Vehicle></Vehicles>";

var cars = …
Run Code Online (Sandbox Code Playgroud)

c# xml xml-deserialization deserialization

7
推荐指数
1
解决办法
1130
查看次数

标签 统计

c# ×1

deserialization ×1

xml ×1

xml-deserialization ×1