我最近在web.config文件中添加了一些命名空间,以便我的所有aspx页面都可以引用各种常量和枚举,而无需在每个aspx页面上添加import语句。由于添加了这个,我们现在在尝试测试asmx Web服务时遇到错误。看来,在wsdl生成期间,我们收到以下错误:
CS0104:'消息'含糊不清 之间的参考 'System.Web.Services.Description.Message' 和'InsTech.ForeSight.Message'
在研究这个时,我发现在运行时编译期间调用了DefaultWsdlHelpGenerator.asmx,并且其中有一个方法具有以下签名:
void WriteSoapMessage(MessageBinding messageBinding, Message message, bool soap12) {
我们在名为Message的名称空间中定义了一个对象,该对象导致模糊引用,因为此Web服务文件未完全限定其消息。
如何在不从web.config中删除命名空间的情况下解决此问题?我们将我们的Web服务放在虚拟目录中的另一个文件夹中,所以我尝试添加一个web.config,它在命名空间上做了一个明确的但是看起来没有用。
任何帮助将不胜感激。 谢谢 凯文
答案 0 :(得分:3)
您可以在代码中使用命名空间别名,并使用它们来区分它们:
using ourOwn=our.own.namespace;
并将您的Message类称为ourOwn.Message
。这样可以避免碰撞。