2012-03-05 2 views
7

Не знаете, как сформулировать этот вопрос, но вот проблема.Можно ли изменить псевдоним на пространство имен C#?

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

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

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

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

+0

Используйте VB.NET для доступа к своей библиотеке - это без учета регистра. ;-) (хорошо, просто шучу) – Heinzi

ответ

7

Не глобально. Вы можете использовать namespace aliases, но только в клиентском коде. Похоже, вам, возможно, придется совершить резкое изменение.

Один из способов сделать это, если это только один или два класса, было бы скопировать их из my.foo.Bar в my.foo.bar, принизить те, в плохом пространстве имен с помощью Obsolete attribute и медленно перемещать клиентов к правильным из них.

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

+0

+1 для атрибута Устаревший. – Heinzi

+0

В этом случае это небольшой класс, 4 свойства и 3 перегруженных конструктора. – IronicMuffin

6

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

+1

Возможно, используя myBar = my.foo.Bar'. Ограниченная «немодифицируемая разделяемая библиотека» значительно ограничивает параметры. – Steve

+0

@John Как мне это сделать? Наследовать от класса в сильно названном пространстве имен? Это достаточно хорошо? – IronicMuffin

+0

Я использую ReSharper, поэтому я просто скажу ему, чтобы создать делегирующие элементы. –

Смежные вопросы