2012-11-28 74 views
0

在Visual Studio中,你可以使用下面的屏幕设置一个VB.NET应用程序默认命名空间:ASP.NET网站 - 默认命名空间

enter image description here

您可以为Visual Studio项目做同样的那是一个ASP.NET Web应用程序。它不适用于ASP.NET网站,为什么?我看到这一个网站:

enter image description here

回答

0

网站不会创建一个DLL,但Web应用程序将创建。要为网站创建一个dll,请使用web_deploy项目。

3

因为ASP.NET Web站点分布和编译的方式,所以没有理由使用默认名称空间,因为每次ASP.NET文件都是在第一次加载页面时动态编译并转换为它自己的DLL “做ASP.NET的老方法”)。

但是,使用Web应用程序时,一堆代码隐藏文件(以及潜在的其他代码文件)被预编译为单个DLL,然后创建一个好主意,将所有这些文件放入单个名称空间。

你可以把它看作是一个网站是一个网页的集合,但一个Web应用程序是一个统一的整体。

+0

感谢您的更好解释! – CodeSpread

+0

谢谢。你说:“但是,用Web应用程序,一堆代码隐藏文件”。网站也有代码背后的代码。 – w0051977

+0

对。使用网站,每个动态编译到它自己的DLL中。使用Web应用程序,一个**串**被捆绑在一个DLL中。 –

0

我正在使用网站,我需要一种方法来访问我的Global.asax文件中的BundleConfig,IdentityConfig和RouteConfig类和模块。我能够将这些文件放到“App_Code”文件夹中,该文件夹允许您在类和模块周围放置命名空间。

下面是一个例子:

Namespace TCEmpSite 
    Public Module RouteConfig 
     Sub RegisterRoutes(ByVal routes As RouteCollection) 
      Dim settings As FriendlyUrlSettings = New FriendlyUrlSettings() 
      settings.AutoRedirectMode = RedirectMode.Permanent 
      routes.EnableFriendlyUrls(settings) 
     End Sub 
    End Module 
End Namespace 
Global.asax文件中我能够做到这一点

然后:

Private Sub Application_Start(sender As Object, e As EventArgs) 
     ' Code that runs on application startup 
     TCEmpSite.RouteConfig.RegisterRoutes(RouteTable.Routes) 
     TCEmpSite.BundleConfig.RegisterBundles(BundleTable.Bundles) 
     TCEmpSite.IdentityConfig.ConfigureIdentity() 
    End Sub 

希望这可以帮助别人!