Можно ли изменить псевдоним пространства имен c #? - PullRequest
7 голосов
/ 05 марта 2012

Не уверен, как сформулировать этот вопрос, но вот проблема.

У меня есть спроектированное пространство имен: my.foo.bar

В одном из моих занятий я случайно назвал пространство имен my.foo.Bar

Я хочу исправить заглавные буквы пространства имен, чтобы все были на одной странице, но это общая библиотека, и я не могу позволить себе перекомпилировать все программы, использующие это.

Итак, могу ли я создать что-то, что, по сути, перенаправляет my.foo.Bar на my.foo.bar?

Ответы [ 2 ]

7 голосов
/ 05 марта 2012

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

Один из способов сделать это, если это всего один или два класса, - это скопировать их из my.foo.Bar в my.foo.bar, исключить из нихв неправильном пространстве имен, используя Устаревший атрибут , и медленно перемещайте клиентов к правильным.

Если класс не имеет состояния, то класс в пространстве имен my.foo.Bar может делегироватьодин из них в пространстве имен my.foo.bar, как предлагает @JohnSaunders, но только в том случае, если использование клиентом этого класса не исключает делегирование (все является методом или свойством, тип этого класса не используется посредством отражения и т. д.).

6 голосов
/ 05 марта 2012

Лучшее, что вы можете сделать, - это взять все типы в пространстве имен с плохими именами и создать их версии в правильном пространстве имен.Они могут делегироваться неверным версиям пространства имен.

...