繁体   English   中英

从WSDL中删除额外的WCF名称空间

[英]Removing Extra WCF namespace from WSDL

我在使用WCF中的命名空间时遇到问题。 我从来没有做过。 我已经尝试了很多以在Google上找到解决方案。 但是我仍然无法找到解决方案。

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

  1. 合同(ServiceContract)
  2. 服务(代码隐藏)
  3. 主机(ServiceHost)
  4. 模型(DataContract类)

当我在IIS中托管服务时,它会很好地生成WSDL,但是有些命名空间尚未定义如下:

http://schemas.microsoft.com/2003/10/Serialization/
http://schemas.datacontract.org/2004/07/My.Models

问题是我只想通过相同的名称空间访问我的所有服务合同和数据合同。

因为在代理类中生成DataContract类时,它是重复的。 意思是,如果我的Models项目中有一个ClassA类,那么它将给我2个类,分别为ClassAClassA1

我在代理类中看到这些位于不同的命名空间中。 因此,我想避免这种情况。

我也想避免使用ChannelFactory方法,因为有很多OperationContract函数。 因此,不想手动编写太多代码,而是希望以正确的方式自动生成代码。

任何帮助是极大的赞赏。 提前致谢。

我也想避免使用ChannelFactory方法,因为有很多OperationContract函数。 因此,不想手动编写太多代码,而是希望以正确的方式自动生成代码。

这根本没有任何意义。 ChannelFactory<T>.CreateInstance()方法比wsdl生成的服务代理轻得多,并且您必须编写的代码量是可比的。

服务参考是为当您调用无法控制或内部可见的第三方服务而设计的。

我绝对不会想到,如果可以访问服务定义程序集,那么使用生成的服务引用比使用ChannelFactory更可取。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM