C# 为什么web服务引用和服务引用的结果不同?

C# 为什么web服务引用和服务引用的结果不同?,c#,web-services,wcf,C#,Web Services,Wcf,我对在试图理解服务引用和Web服务引用的概念时发生的一件事有点好奇 我所做的是? 在我的项目中,我添加了一个web服务作为服务参考,并试图通过使用客户端来运行我的脚本。 但在得到结果时,它会抛出一个异常,如下图所示: 我试图找出原因,但没有找到正确的答案。 对于结果对象,我有以下代码 [ ComVisible(false), Serializable, SoapTypeAttribute("RecordList", "http://www.so

我对在试图理解服务引用Web服务引用的概念时发生的一件事有点好奇

我所做的是?

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

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

[
        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服务引用时 当我添加与
web引用相同的引用时,程序没有显示任何错误并成功运行

那么,有谁能告诉我使用服务引用和web服务引用处理相同代码的区别是什么? 哪一种方法是正确的

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


提前感谢。

添加web引用后,visual studio使用xsd.exe从服务元数据生成类。这在后台使用XmlSerializer

通过添加服务引用,visual studio使用svcuti.exe从元数据生成类。这在引擎盖下使用DataContractSerializer


两种不同的工具,两种结果。关于一般信息,DataContractSerializer在从元数据生成类时非常有用。

请参见类似问题:@Oscar谢谢您的建议,但我仍然不清楚为什么以及如何将我的代码用作
服务参考
?为什么在使用
服务引用时会显示错误?IxRecordList是一个接口吗?是的,在哪里?您是否在代码的其他地方使用了KnownType属性@奥斯卡:我已更新代码,请检查。:)对于KnowntypeAttributes,我正在使用XMLSerialization的SoapElements和SoapTypeAttribute不确定,但我认为由于WCF是独立于传输的,所以应该使用KnownTypes属性而不是SoapAttribute。WCF可以在Soap以外的其他场景中运行,因此您不应该过于拘泥于xml序列化。