gpt4 book ai didi

WCF 服务引用创建第二类

转载 作者:行者123 更新时间:2023-12-02 02:35:34 25 4
gpt4 key购买 nike

我正在使用 VS2008 创建对 WCF 服务的服务引用,但生成的引用文件定义了 2 个代表同一对象的类。任何想法为什么会这样?查看下面的结果 - 生成了 THView 和 THView1,而我只期待 THView。

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="THView", Namespace="http://schemas.datacontract.org/2004/07/CH.BusinessServices.Model")]
[System.SerializableAttribute()]
public partial class THView : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="THView", Namespace="http://tempuri.org/")]
[System.SerializableAttribute()]
public partial class THView1 : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {

最佳答案

服务文件是根据服务的元数据 (WSDL) 生成的,这个特定服务的元数据显然定义了两种不同的 THView 类型。

它们可能看起来相似(它们具有相同的名称),但它们实际上不同,因为它们分别位于两个不同的命名空间中(注意 DataContractAttribute 的 Namespace 属性)

  • http://schemas.datacontract.org/2004/07/CH.BusinessServices.Model
  • http://tempuri.org/

因为命名空间不同,所以认为类型不同。这就是 XML 的工作原理。

看起来好像定义原始服务的开发人员忘记更改服务公开的一种或多种类型的默认 XML 命名空间 - 至少,http://tempuri.org/ 是 WCF 中的默认命名空间。

强烈建议将默认命名空间更改为服务所有者“拥有”的命名空间。

关于WCF 服务引用创建第二类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2001225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com