为什么用名称空间包围我的类会导致所有其他类停止编译



我在vb.net 4.0中有一个大型web应用程序。其默认命名空间在其项目属性中配置。我们的应用程序中没有任何根级别的类被命名空间声明包围。

当我将.asmx文件添加到网站的根文件夹时,它编译得很好,但由于某种原因(在其他主题中已经问过为什么),它不起作用。因此,为了让它发挥作用,我尝试用命名空间声明来包围.asmx中声明的类。一旦我这样做,我就从零编译器错误变成了大约无数。我的应用程序在根命名空间中找不到任何东西。但我没有更改任何其他文件,只有这个.asmx文件。

为什么它会这样?在不重构整个应用程序的情况下,我如何防止它以这种方式运行?我很想清空默认名称空间,并在每个根级类周围显式添加它们,但我不确定这是否会影响我们的发布管理器,我甚至不知道它是否能解决问题。。。

在VB.net中围绕类添加命名空间时,必须更新对该命名空间的任何引用。

举个例子。如果在名为"candy"的类周围添加一个名称空间Bar,并且根名称空间是Foo(可以在项目属性->应用程序->根名称空间中找到),那么现在需要向引用它的任何类添加一个Import Foo.Bar

因此,对于asmx标记文件,如果您的根命名空间是Foo,并且添加到Web服务的命名空间包装器是Bar,则需要将.asmx标记更新为:

<%@ WebService Language="vb" CodeBehind="HomepageService.asmx.vb" Class="Foo.Bar.HomepageService" %>

相关内容

最新更新