Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将xml反序列化为对象会导致错误_C#_Xml - Fatal编程技术网

C# 将xml反序列化为对象会导致错误

C# 将xml反序列化为对象会导致错误,c#,xml,C#,Xml,我得到一个例外: [XmlTypeAttribute(AnonymousType = true, Namespace = "urn:schemas-alibaba-com:billing-data")] [XmlRootAttribute(ElementName="Order", Namespace = "urn:schemas-alibaba-com:billing-data", IsN

我得到一个例外:

[XmlTypeAttribute(AnonymousType = true,
                  Namespace = "urn:schemas-alibaba-com:billing-data")]
[XmlRootAttribute(ElementName="Order",
                  Namespace = "urn:schemas-alibaba-com:billing-data",
                  IsNullable = false)]
public partial class Order
{
    private string currencyField;

    private object descriptionField;
}

我测试您的xml内容,没关系

这是我的密码:

var xmlReader = new StringReader(xml_data);
var serializer = new XmlSerializer(typeof(Order));    
var instance = (Order)serializer.Deserialize(xmlReader);

我想您可能会错过“货币”和“描述”字段,它们应该是可访问的,

我错过了。但我的xml有一个名称空间,因此我认为这不应该引发异常。@keeda你确定吗?这确实有效。您是否正在修改内存中的xml内容…无论您在
xml\u数据中传递什么?你是在改变编码还是什么?@Leo我正在直接使用从数据库中获取的字符串。看起来没问题。这是怎么纠正错误的?!?!?!?!好了,这并不能解决他犯的错误…我是不是遗漏了什么?
Exception:    
{"There is an error in XML document (1, 2)."}  
Inner exception :
{"<Order xmlns='urn:schemas-alibaba-com:billing-data'> was not expected."}  
var xmlReader = new StringReader(xml_data);
var serializer = new XmlSerializer(typeof(Order));    
var instance = (Order)serializer.Deserialize(xmlReader);
[TestMethod]
public void Xml_ShouldBeDeserialized()
{
    var serializer = new XmlSerializer(typeof (Order));
    using (var stream = File.OpenRead(@"D:\test.xml"))
    {
        var obj = serializer.Deserialize(stream);
        var order = obj as Order;
        Assert.IsNotNull(order);                
    }
}

[XmlTypeAttribute(AnonymousType = true,
              Namespace = "urn:schemas-alibaba-com:billing-data")]
[XmlRoot(ElementName = "Order",
                  Namespace = "urn:schemas-alibaba-com:billing-data",
                  IsNullable = false)]
public partial class Order
{
    private string currencyField;

    private object descriptionField;

    public string Currency { get; set; }

    public string Description { get; set; }
}