在使用数据属性序列化.Net中的对象时省略xsi和xid名称空间

时间:2018-05-10 13:39:33

标签: c# xml serialization

我已经访问了this帖子,但由于我无法控制序列化,因此无效。

后台:我有一个WSDL文档,我已将其添加为Web引用并获得了一个reference.cs类。我正在从.Net应用程序调用服务,但它在反序列化时抛出错误。以下是我的XML文件,其中一个工作正常,另一个则给我一个错误。

正常工作:

<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:mas="http://orgname.com/compxref/Sometype">
    <soapenv:Header/>
    <soapenv:Body>
        <mas:SomeInputType> 
    ...............

投掷错误:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <SomeInputType
            xmlns="http://orgname.com/compxref/Sometype">
    .........................

我的序列化类如下所示:

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.2612.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://orgname.com/compxref/Sometype")]

public partial class SomeInputType
{
    ...All the properties
}

问题:我想将此XML更改为正常工作的XML。但在这里,我无法控制序列化或反序列化。我所能做的就是使用数据属性来修饰类和属性。

0 个答案:

没有答案