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