C# 从WSDL中删除额外的WCF命名空间
我在使用WCF中的名称空间时遇到问题。我以前从未做过。我已经尝试了很多在谷歌上寻找解决方案。但我仍然无法找到解决办法 我编写了一个WCF服务,分为3个项目,另外我还创建了一个模型项目: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
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你能把代码贴在发生这种情况的地方吗?