从WSDL中删除额外的WCF名称空间
本文关键字:WCF 空间 WSDL 删除 | 更新日期: 2023-09-27 18:10:06
我在使用WCF中的命名空间时遇到了问题。我以前从来没有做过。我已经尝试了很多在谷歌上找到解决方案。但是我仍然找不到一个解决办法。
我写了一个WCF服务,分为3个项目,另外我还创建了一个模型项目:
- 合同(ServiceContract)
- 服务(后台代码)
- 主机(ServiceHost)
- 模型(数据合约类)
当我在IIS中托管服务时,它正在生成WSDL,但有一些名称空间我没有定义如下:
http://schemas.microsoft.com/2003/10/Serialization/
http://schemas.datacontract.org/2004/07/My.Models
问题是我想通过同一个命名空间访问所有的服务契约和数据契约。
因为当在代理类中生成DataContract
类时,它被复制了。意思是如果我在我的Models
项目中有一个类ClassA
,那么它会给我两个类ClassA
和ClassA1
。
我看到在代理类中,这些都在不同的命名空间中。所以,我想避免这个
我也想避免ChannelFactory
方法,因为有很多OperationContract
函数。所以,我不想用手写那么多代码,但希望它能以正确的方式自动生成。
非常感谢任何帮助。
我也想避免ChannelFactory方法,因为有很多OperationContract功能。所以,不要写那么多代码手,但希望它以正确的方式自动生成。
这完全没有意义。ChannelFactory<T>.CreateInstance()
方法比wsdl生成的服务代理要轻得多,您必须编写的代码量也差不多。
服务引用是为调用无法控制或内部可见的第三方服务而设计的。
如果您可以访问服务定义程序集,我绝对不会想到使用生成的服务引用比使用ChannelFactory更好的情况。
对于需要操作服务wsdl以控制客户端代码生成的情况尤其如此。