运行时编译期间出现模糊参考错误

时间:2009-07-21 17:23:57

标签: c# .net asp.net

我最近在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,它在命名空间上做了一个明确的但是看起来没有用。

任何帮助将不胜感激。 谢谢 凯文

1 个答案:

答案 0 :(得分:3)

您可以在代码中使用命名空间别名,并使用它们来区分它们:

using ourOwn=our.own.namespace;

并将您的Message类称为ourOwn.Message。这样可以避免碰撞。