【问题标题】:Customize WCF Add Service Reference Behavior?自定义 WCF 添加服务引用行为?
【发布时间】:2011-03-29 01:43:29
【问题描述】:

在 Visual Studio 中使用默认的“添加服务引用”菜单选项时,是否有任何方法可以自定义或控制在 WCF 客户端接口类型中创建的集合类类型?

我们的 WCF 服务是这样的,当自动“添加服务引用”运行时,它会为所有包含对象集合的服务器端类型创建数据集......这会导致

"没有对应的起始元素打开"

错误信息。

我想告诉我们的业务合作伙伴如何创建一个有效的 WCF 客户端,为了做到这一点,我认为我需要告诉他们如何使用相关集合类型为列表或数组的类型创建客户端对象,而不是数据集。

编辑:

我的类型中有一个名为 DoubleSchedule 的自定义类型,它实现了 IXmlSerializable,并像以下之一一样被序列化:
<DataELementName firstIntervalId="87656" schedule="77.3|77.3|76.9|77" />

<OtherDataELementName firstIntervalId="87656" lastIntervalId="87670" value="76.1" />

即使我在“添加服务引用”对话框的“高级”选项卡中指定了集合类型,我所有使用此类型的 Xml 元素都会获得基于 DataSet 的生成类型。

想法?

【问题讨论】:

    标签: .net wcf


    【解决方案1】:

    您的问题似乎与集合类型无关,而与 DataContractSerializer 有关。如果您忘记将 XmlSchemaProvider 属性应用于您的类,DataContractSerialzer 会假定您正在尝试序列化旧的 DataSet 对象。

    我假设您没有尝试这样做,因此返回的 DataSet 为空。这很可能是您的起始元素错误的来源。

    http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlschemaproviderattribute.aspx

    编辑:

    还有http://msdn.microsoft.com/en-us/library/aa347876.aspx

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 可以通过单击第一个对话框上的“高级”按钮从“添加服务引用”对话框中访问它。
      • 选择“配置服务参考”时也可以使用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      • 2020-08-20
      相关资源
      最近更新 更多