繁体   English   中英

为什么Web服务引用和服务引用的结果不同?

[英]Why the result from the web service references and Service references are different?

我对尝试理解服务引用Web服务引用的概念时发生的一件事感到有点好奇。

我做的是什么?

在我的项目中,我添加了一个web service作为服务引用,并尝试通过使用客户端来运行我的脚本。 但是在获得结果时,它会抛出异常,如下图所示:

运行脚本时出现异常

我试图找出原因,但无法得到正确答案。 我有结果对象的以下代码。

[
        ComVisible(false), 
        Serializable,
        SoapTypeAttribute("RecordList", "http://www.someadd.com/dev/ns/SOF/2.0"),       
        XmlType(TypeName="RecordList", Namespace="http://www.someadd.com/dev/ns/SOF/2.0")       
    ]
    public class MyRecordListWrapper
    {
        private IxRecordList recordList = null;
        private const string XMLW3CSchema = "http://www.w3.org/2001/XMLSchema";

        [SoapElement("Headers")]
        public Header[] Headers = null;
        [SoapElement("Records")]
        public Record[] Records = null;
        // some methods to work on intialization
        public SmRecordListWrapper(ref IxRecordList p_RecordList)
        {
            recordList = p_RecordList;// record list initialization             
            Headers = CreateWrapperHeaders(); // will return header class object
            Records = CreateWrapperRecords(); // will return record object
        }   
    }

任何人都可以告诉我为什么这个错误对我来说?

我添加与web reference相同的引用时添加引用作为Web服务 web reference ,那时程序没有显示任何错误并成功运行?

那么有谁能告诉我使用服务引用和Web服务引用使用相同的代码有什么区别? 哪个是正确的引用方式?

希望我能得到更多描述的答案,使事情易于理解。

提前致谢。

添加Web引用,visual studio使用xsd.exe从服务元数据生成类。 这使用了引擎盖下的XmlSerializer。

添加服务引用,visual studio使用svcutil.exe从元数据生成类。 这使用了引擎盖下的DataContractSerializer。

两个独立的工具,两个结果。 对于一般信息,DataContractSerializer在从元数据生成类时要宽容得多

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM