用svcutil工具将对方发来的wsdl文件生成代理文件
调用代理函数发送一个XML文档
对对方收到的或者我用第三方工具监测到的XML中的<>被转义成&lt;&gt;如下全文如下
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
   <receiveDataSync xmlns="http://service.transport.nsc.org">
   <receiveDataSync i:type="a:string" xmlns:a="http://www.w3.org/2001/XMLSchema" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">

    &lt;NRSML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"&gt;
    &lt;ExchangeHeader facility="AutoMonitoringStation" level="state" scheme="RealTimeData" type="add" uid="20121113-082525781"&gt;
    &lt;Time /&gt;
    &lt;/ExchangeHeader&gt;
    &lt;DataContent&gt;
    &lt;RealTimeData /&gt;
    &lt;/DataContent&gt;
    &lt;/NRSML&gt;

    </receiveDataSync>
   </receiveDataSync>
    </s:Body>
   </s:Envelope>

红色部分 应该是调用webservice自动加的  <>就正常
蓝色部分是我要发送的XML   我自己发送的就被转义了
怎么才能 不被转义?

解决方案 »

  1.   

    把xml放到CData中试试
    <![CDATA[]]>
      

  2.   

    试过了 我在网上看的 说是CData中的数据解析器不管
    但我放进去后
    也同样被改成转义字符了
    郁闷啊 
      

  3.   

    代理类如下
    //------------------------------------------------------------------------------
    // <auto-generated>
    //     此代码由工具生成。
    //     运行库版本:2.0.50727.3634
    //
    //     对此文件的更改可能会导致不正确的行为,并且如果
    //     重新生成代码,这些更改将会丢失。
    // </auto-generated>
    //------------------------------------------------------------------------------[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(Namespace="http://www.chinansc.cn/nrsml/esb/cachenode", ConfigurationName="DataCacheServicePortType")]
    public interface DataCacheServicePortType
    {
        
        // CODEGEN: 操作 receiveDataAsync 以后生成的消息协定不是 RPC,也不是换行文档。
        [System.ServiceModel.OperationContractAttribute(Action="urn:receiveDataAsync", ReplyAction="urn:receiveDataAsyncResponse")]
        receiveDataAsyncResponse receiveDataAsync(receiveDataAsyncRequest request);
        
        // CODEGEN: 消息 feedbackRequest 的包装命名空间(http://service.transport.nsc.org)以后生成的消息协定与默认值(http://www.chinansc.cn/nrsml/esb/cachenode)不匹配
        [System.ServiceModel.OperationContractAttribute(Action="urn:feedback", ReplyAction="urn:feedbackResponse")]
        feedbackResponse feedback(feedbackRequest request);
        
        // CODEGEN: 消息 receiveDataSyncRequest 的包装命名空间(http://service.transport.nsc.org)以后生成的消息协定与默认值(http://www.chinansc.cn/nrsml/esb/cachenode)不匹配
        [System.ServiceModel.OperationContractAttribute(Action="urn:receiveDataSync", ReplyAction="urn:receiveDataSyncResponse")]
        receiveDataSyncResponse receiveDataSync(receiveDataSyncRequest request);
    }[System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    [System.ServiceModel.MessageContractAttribute(WrapperName="receiveDataAsync", WrapperNamespace="http://service.transport.nsc.org", IsWrapped=true)]
    public partial class receiveDataAsyncRequest
    {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.transport.nsc.org", Order=0)]
        public object receiveDataAsync;
        
        public receiveDataAsyncRequest()
        {
        }
        
        public receiveDataAsyncRequest(object receiveDataAsync)
        {
            this.receiveDataAsync = receiveDataAsync;
        }
    }[System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    [System.ServiceModel.MessageContractAttribute(IsWrapped=false)]
    public partial class receiveDataAsyncResponse
    {
        
        public receiveDataAsyncResponse()
        {
        }
    }[System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    [System.ServiceModel.MessageContractAttribute(WrapperName="feedback", WrapperNamespace="http://service.transport.nsc.org", IsWrapped=true)]
    public partial class feedbackRequest
    {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.transport.nsc.org", Order=0)]
        public object feedback;
        
        public feedbackRequest()
        {
        }
        
        public feedbackRequest(object feedback)
        {
            this.feedback = feedback;
        }
    }[System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    [System.ServiceModel.MessageContractAttribute(WrapperName="feedbackResponse", WrapperNamespace="http://service.transport.nsc.org", IsWrapped=true)]
    public partial class feedbackResponse
    {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.transport.nsc.org", Order=0)]
        public object @return;
        
        public feedbackResponse()
        {
        }
        
        public feedbackResponse(object @return)
        {
            this.@return = @return;
        }
    }[System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    [System.ServiceModel.MessageContractAttribute(WrapperName="receiveDataSync", WrapperNamespace="http://service.transport.nsc.org", IsWrapped=true)]
    public partial class receiveDataSyncRequest
    {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.transport.nsc.org", Order=0)]
        public object receiveDataSync;
        
        public receiveDataSyncRequest()
        {
        }
        
        public receiveDataSyncRequest(object receiveDataSync)
        {
            this.receiveDataSync = receiveDataSync;
        }
    }[System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    [System.ServiceModel.MessageContractAttribute(WrapperName="receiveDataSyncResponse", WrapperNamespace="http://service.transport.nsc.org", IsWrapped=true)]
    public partial class receiveDataSyncResponse
    {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://service.transport.nsc.org", Order=0)]
        public object @return;
        
        public receiveDataSyncResponse()
        {
        }
        
        public receiveDataSyncResponse(object @return)
        {
            this.@return = @return;
        }
    }[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    public interface DataCacheServicePortTypeChannel : DataCacheServicePortType, System.ServiceModel.IClientChannel
    {
    }[System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    public partial class DataCacheServicePortTypeClient : System.ServiceModel.ClientBase<DataCacheServicePortType>, DataCacheServicePortType
    {
        
        public DataCacheServicePortTypeClient()
        {
        }
        
        public DataCacheServicePortTypeClient(string endpointConfigurationName) : 
                base(endpointConfigurationName)
        {
        }
        
        public DataCacheServicePortTypeClient(string endpointConfigurationName, string remoteAddress) : 
                base(endpointConfigurationName, remoteAddress)
        {
        }
        
        public DataCacheServicePortTypeClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(endpointConfigurationName, remoteAddress)
        {
        }
        
        public DataCacheServicePortTypeClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress)
        {
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        receiveDataAsyncResponse DataCacheServicePortType.receiveDataAsync(receiveDataAsyncRequest request)
        {
            return base.Channel.receiveDataAsync(request);
        }
        
        public void receiveDataAsync(object receiveDataAsync1)
        {
            receiveDataAsyncRequest inValue = new receiveDataAsyncRequest();
            inValue.receiveDataAsync = receiveDataAsync1;
            receiveDataAsyncResponse retVal = ((DataCacheServicePortType)(this)).receiveDataAsync(inValue);
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        feedbackResponse DataCacheServicePortType.feedback(feedbackRequest request)
        {
            return base.Channel.feedback(request);
        }
        
        public object feedback(object feedback1)
        {
            feedbackRequest inValue = new feedbackRequest();
            inValue.feedback = feedback1;
            feedbackResponse retVal = ((DataCacheServicePortType)(this)).feedback(inValue);
            return retVal.@return;
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        receiveDataSyncResponse DataCacheServicePortType.receiveDataSync(receiveDataSyncRequest request)
        {
            return base.Channel.receiveDataSync(request);
        }
        
        public object receiveDataSync(object receiveDataSync1)
        {
            receiveDataSyncRequest inValue = new receiveDataSyncRequest();
            inValue.receiveDataSync = receiveDataSync1;
            receiveDataSyncResponse retVal = ((DataCacheServicePortType)(this)).receiveDataSync(inValue);
            return retVal.@return;
        }
    }