【发布时间】:2015-10-01 08:29:13
【问题描述】:
我对在尝试理解服务引用和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 服务引用时
当我添加与web reference 相同的引用时,程序没有显示任何错误并成功运行?
那么谁能告诉我使用服务引用和 Web 服务引用处理相同的代码有什么区别? 哪个是评估参考的正确方法?
希望我能得到更多描述性的答案,让事情变得容易理解。
提前致谢。
【问题讨论】:
-
看到这个类似的问题:stackoverflow.com/questions/2158106/…
-
@Oscar 感谢您的建议,但我仍然不清楚为什么以及如何将我的代码用作
service reference?以及为什么在使用service references时出现错误? -
IxRecordList 是一个接口吗?是的,它被分配到哪里?您是否在代码的其他地方使用过 KnownType 属性? msdn.microsoft.com/en-us/library/ms751512(v=vs.110).aspx
-
@Oscar 我已经更新了代码,请检查。 :) 对于 KnowntypeAttributes,我使用 SoapElements 和 SoapTypeAttributes 进行 XMLSerialization
-
不确定,但我认为由于 WCF 是独立于传输的,因此您应该使用 KnownTypes 属性而不是 SoapAttribute。 WCF 可以在 Soap 以外的其他场景下运行,所以不要拘泥于 xml 序列化。
标签: c# web-services wcf