我正在阅读一个XML响应,该XML看起来像这样:
<?xml version=""1.0"" encoding=""UTF-8""?>
<Errors>
<Error>Error Msg 1</Error>
<Error>Error Msg 2</Error>
</Errors>
我有回应课:
public class Error
{
public string ErrorMessage { get; set; }
}
public class OrderCreationResponse
{
public Error[] Errors { get; set; }
...
}
我尝试OrderCreationResponse
使用以下代码创建一个:
var orderCreationResponse = xDocument.Root
.Elements("Errors")
.Select(x => new OrderCreationResponse
{
Errors = x.Elements("Error").Select(c => new Error
{
ErrorMessage = (string) c.Element("Error").Value
}).ToArray()
}).FirstOrDefault();
但是它总是返回null
。我究竟做错了什么?
您xDocument.Root
是您的Errors
元素,因此它Errors
下面没有元素。您还犯了一个类似的错误Error
-当您在该元素下寻找更多元素时,您已经在该元素中。
更改为:
var orderCreationResponse = xDocument
.Elements("Errors")
.Select(x => new OrderCreationResponse
{
Errors = x.Elements("Error")
.Select(c => new Error {ErrorMessage = c.Value})
.ToArray()
}).FirstOrDefault();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句