Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从WSDL中删除额外的WCF命名空间_C#_Wcf_Wsdl - Fatal编程技术网

C# 从WSDL中删除额外的WCF命名空间

C# 从WSDL中删除额外的WCF命名空间,c#,wcf,wsdl,C#,Wcf,Wsdl,我在使用WCF中的名称空间时遇到问题。我以前从未做过。我已经尝试了很多在谷歌上寻找解决方案。但我仍然无法找到解决办法 我编写了一个WCF服务,分为3个项目,另外我还创建了一个模型项目: 合同(服务合同) 服务(代码隐藏) 主机(服务主机) 模型(DataContract类) 当我在IIS中托管服务时,它会生成WSDL,但有一些名称空间我没有定义如下: http://schemas.microsoft.com/2003/10/Serialization/ http://schemas.dataco

我在使用WCF中的名称空间时遇到问题。我以前从未做过。我已经尝试了很多在谷歌上寻找解决方案。但我仍然无法找到解决办法

我编写了一个WCF服务,分为3个项目,另外我还创建了一个模型项目:

  • 合同(服务合同)
  • 服务(代码隐藏)
  • 主机(服务主机)
  • 模型(DataContract类)
  • 当我在IIS中托管服务时,它会生成WSDL,但有一些名称空间我没有定义如下:

    http://schemas.microsoft.com/2003/10/Serialization/
    http://schemas.datacontract.org/2004/07/My.Models
    
    问题是我只想通过同一名称空间访问我的所有服务契约和数据契约

    因为在代理类中生成
    DataContract
    类时,它是重复的。意思是说,如果我的
    模型
    项目中有一个类
    ClassA
    ,那么它会给我两个类,分别为
    ClassA
    ClassA1

    我在代理类中看到,它们位于不同的名称空间中。所以,我想避免这种情况

    我还想避免使用
    ChannelFactory
    方法,因为有很多
    OperationContract
    函数。所以,我不想手工编写那么多代码,但希望它能以正确的方式自动生成

    非常感谢您的帮助。提前谢谢

    我还想避免ChannelFactory方法,因为有很多 运营合同职能。所以,我不想写那么多代码 但希望它能以正确的方式自动生成

    这毫无意义。
    ChannelFactory.CreateInstance()
    方法比wsdl生成的服务代理轻得多,并且您必须编写的代码量是可以比较的

    服务引用是为您调用无法控制其内部可视性的第三方服务而设计的

    如果您有权访问服务定义程序集,我想不出在什么情况下使用生成的服务引用比使用ChannelFactory更可取


    对于您需要操纵服务wsdl以控制客户端代码生成的情况,尤其如此

    我不明白你关于
    ChannelFactory
    方法和大量手工编码的意思
    ChannelFactory
    将为您生成代理-除了创建工厂并从中获取通道之外,没有任何东西需要手动编码。是-服务器端服务对象的命名空间,以及客户端代理生成的对象,通常是不同的-除非您知道您控制服务调用的两端(服务器+客户端),并且您可以将数据协定放入服务器和客户端都引用的单独程序集中。在这种情况下,数据类在数据协定程序集中只存在一次。是否为协定/服务定义了命名空间?因为在代理类中生成数据协定类时,它是重复的。意思是说,如果我的模型项目中有一个ClassA,那么它会给我两个ClassA和ClassA1你能把代码贴在发生这种情况的地方吗?