【问题标题】:Bulk Move ASP.NET Pages Into A New Namespace?将 ASP.NET 页面批量移动到新的命名空间中?
【发布时间】:2010-11-24 09:54:48
【问题描述】:

我有一个 C# ASP.NET Web 应用程序项目,其中所有页面都位于 global/default/top-level 命名空间中。 (我没有明确的命名空间声明。当我在 Red Gate 的 .NET Reflector 中查看我编译的 Web 应用程序的 DLL 时,我可以验证所有类都在顶级 .NET 命名空间中。)有什么好的自动化方法吗?将所有页面和自定义控件移动到一个新的命名空间中,比如“MyWebApplication”?理想情况下,只使用 Visual Studio 会很好,但如有必要,我愿意考虑使用商业重构工具。

我想也许通过在项目的应用程序属性中设置“默认命名空间”属性,我可以让编译器隐式地将所有页面放入指定的命名空间,但情况似乎并非如此;这个“默认命名空间”设置似乎使 Visual Studio 将 explicit 命名空间声明插入到 new 页面中,而不是隐式影响任何现有页面的命名空间。

如果这很重要,我的直接动机是尝试在我的 Web 应用程序上运行静态分析工具 (CAT.NET);该工具在全局命名空间中的代码似乎有一两个怪癖。

【问题讨论】:

    标签: asp.net visual-studio namespaces


    【解决方案1】:

    克里斯,因为您准备为重构工具付费,这可能看起来很傻。但是考虑一下:

    默认情况下,命名空间在代码隐藏文件中声明为项目/应用程序名称。因此,如果您的项目名称是 MyWeb,则默认命名空间将为

    namespace MyWeb
    {
    
       public partical class MyWebPage....
    

    现在在 ASPX 页面中引用如下:

     <%Page ... CodeBehind="MyWebPage.aspx.cs" Inherits="MyWeb.MyWebPage"
    

    您只需要更改这两件事即可使命名空间迁移生效。坦率地说,这可以使用 Find/Replace 对话框来实现。请复制您的完整解决方案并尝试一下!

    干杯

    【讨论】:

    • 我认为他的意思是他的页面都没有命名空间,这是 Visual Studio 默认为网站项目所做的。查找/替换不起作用,因为没有定义命名空间。
    • 是的,内森说得对。这对我来说不再是一个紧迫的问题,但我想仍然没有答案,所以人们还没有想出。
    猜你喜欢
    • 1970-01-01
    • 2013-08-07
    • 2011-10-23
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多