Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.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
将具有名称空间的XML反序列化为C#对象时出错_C# - Fatal编程技术网

将具有名称空间的XML反序列化为C#对象时出错

将具有名称空间的XML反序列化为C#对象时出错,c#,C#,我有一个XML文件,它的开头如下:- <?xml version="1.0" encoding="UTF-8"?> <Deal xmlns="http://schemas.datacontract.org/2004/07/DealioCapLinkLib.Dealio.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <AccountingDate>2019-09-30</Ac

我有一个XML文件,它的开头如下:-

<?xml version="1.0" encoding="UTF-8"?>
<Deal xmlns="http://schemas.datacontract.org/2004/07/DealioCapLinkLib.Dealio.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
   <AccountingDate>2019-09-30</AccountingDate>
错误消息是
“XML文档(2,2)中有错误。”
内部异常消息是
“不应出现。”


Deal是WCF代理。因此我可能无法添加任何属性。有人能建议在这里做什么吗?

作为WCF代理并不排除添加属性;特别是,它通常是一个
部分类
,这意味着您可以拥有自己的单独的文件,其中包括:

命名空间服务
{
[XmlRoot(“交易”,命名空间=”http://schemas.datacontract.org/2004/07/DealioCapLinkLib.Dealio.Models")]
部分类处理{}
}

但最终:如果类型不适合XML:停止对抗它-创建一个新的单独类型,该类型适合XML并与
XmlSerializer
配合良好,然后在您自己的代码中映射这两种类型。

作为WCF代理并不排除添加属性;特别是,它通常是一个
部分类
,这意味着您可以拥有自己的单独的文件,其中包括:

命名空间服务
{
[XmlRoot(“交易”,命名空间=”http://schemas.datacontract.org/2004/07/DealioCapLinkLib.Dealio.Models")]
部分类处理{}
}

但最终:如果类型不适合XML:停止对抗-创建一个新的单独类型,该类型适合XML并与
XmlSerializer
配合良好,然后在您自己的代码中映射这两种类型。

尝试将XmlRootAttribute添加到序列化程序
var XmlSerializer=new XmlSerializer(typeof(Service.Deal),new XmlRootAttribute(“Deal”);
尝试将XmlRootAttribute添加到序列化程序
var xmlSerializer=new xmlSerializer(typeof(Service.Deal),new XmlRootAttribute(“Deal”);
 private static void Prod_Error_Test()
 {
            string prodRequestXml = File.ReadAllText("ProdXml.xml");

            var serializer = new XmlSerializer(typeof(Service.Deal));
            Service.Deal request ;

           var reader = new StringReader(prodRequestXml);
           request = (Service.Deal)serializer.Deserialize(reader);

 }