Массовое перемещение страниц ASP.NET в новое пространство имен? - PullRequest
1 голос
/ 31 августа 2009

У меня есть проект веб-приложения на C # ASP.NET, где все страницы находятся в глобальном / default / пространстве верхнего уровня. (У меня нет явных объявлений пространства имен. И когда я смотрю на DLL моего скомпилированного веб-приложения в .NET Reflector от Red Gate, я могу убедиться, что все классы находятся в пространстве имен .NET верхнего уровня.) Есть ли какой-нибудь хороший, автоматизированный способ переместить все страницы и пользовательские элементы управления в новое пространство имен, скажем «MyWebApplication»? В идеале было бы неплохо сделать это только с Visual Studio, но я был бы открыт для рассмотрения коммерческого инструмента рефакторинга в случае необходимости.

Я подумал, может быть, установив свойство «Пространство имен по умолчанию» в свойствах приложения проекта, я мог бы заставить компилятор неявно помещать все страницы в указанное пространство имен, но, похоже, это не так; этот параметр «Пространство имен по умолчанию», по-видимому, позволяет Visual Studio вставлять явные объявления пространства имен в новые страницы, а не косвенно влиять на пространство имен любых существующих страниц.

Если это имеет значение, моя непосредственная мотивация заключается в том, чтобы попытаться запустить инструмент статического анализа (CAT.NET) в моем веб-приложении; инструмент, кажется, имеет причуду или два с кодом в глобальном пространстве имен.

1 Ответ

1 голос
/ 31 августа 2009

Крис, это может выглядеть глупо, поскольку ты готов заплатить за инструмент рефакторинга, чтобы это сделать. Но учтите это:

Пространство имен объявляется в файле code-behind по умолчанию как имя проекта / приложения. Так что, если ваш проект называется MyWeb, пространство имен по умолчанию будет

namespace MyWeb
{

   public partical class MyWebPage....

Теперь это упоминается на странице ASPX следующим образом:

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

Вам нужно всего лишь изменить эти две вещи, чтобы осуществить миграцию пространства имен. И, честно говоря, это можно сделать с помощью диалогового окна Найти / Заменить . Пожалуйста, сделайте копию вашего полного решения и попробуйте !!

Приветствия

...