2009-11-20 3 views
4

У меня возникла проблема с попыткой выяснить, как правильно назвать мое пространство имен. Мое пространство имен в данный момент:Именование пространства имен

<CompanyName>.<ProductName>.Configuration 

Однако, используя "Конфигурация" конфликты с:

System.Configuration 

Что еще хуже, у меня есть класс с именем ConfigurationManager. Я знаю, что могу изменить его на что-то вроде:

<CompanyName>.<ProductName>.<ProductName>Configuration 

но это кажется излишним. Есть идеи?

EDIT: Кроме того, я знаю, что при вызове любого класса я могу полностью квалифицировать код вызова, но частота, которую будут использовать классы в пространстве имен , и <CompanyName>.<ProductName>.Configuration, будет использовать для уродливого кода.

edit2: Обеспечение особенности:

Использование заявлений:

using System.Configuration; 
using SummitConfiguration = SST.Summit.Configuration; 

Проблема строки Конфигурация конфигурации = ConfigurationManager.OpenExeConfiguration (ConfigurationUserLevel.PerUserRoamingAndLocal);

Сообщение об ошибке «SST.Summit.Configuration» представляет собой «пространство имен», но он используется как «тип» (для проблемной линии выше)

+1

Возможно ли использовать сокращенную форму конфигурации, например Config? –

+0

На самом деле это было бы возможно. Я хотел избежать повторного использования имени продукта, поскольку это было упомянуто ранее в пространстве имен, но аббревиатура может быть не плохой идеей. –

ответ

11

Как правило, в таких случаях, я оставить Configuration namespace и используйте псевдоним для доступа к моему пространству имен (а не к полной квалификации). Например:

using System.Configuration; 
using PC = MyCompany.MyProduct.Configuration; 

// ... 

string configValue = PC.ConfigurationManager.GetValue("Foo"); 
+0

Это имеет смысл, но я получаю «mynamespace» - это «пространство имен», но используется как «тип» при использовании класса System.Configuration.Configuration. Есть идеи? –

+0

Вам нужно предоставить дополнительную информацию - если вы публикуете свои операторы (псевдонимы + другие), а также пару строк, показывающих вызов, мы можем сузить его. То, что я написал, работает очень хорошо, хотя - я всегда использую его. –

+0

Несомненно, см. Выше. –

1

Там не должно быть проблемой с использованием пространства имен конфигурации - вы просто должны явно ссылаться на тот, который вы хотите, полностью квалифицируя имя. Это немного боль, но я думаю, что четкое соглашение об именах лучше, чем придумать другое имя, если объекты в вашем пространстве имен действительно имеют дело с конфигурацией. Как и другие, вы можете использовать псевдонимы.

2

А что делать что-то вроде этого:

using System.Configuration; 
using MyCompany.MyProduct.ProdConfig 

или

using System.Configuration; 
using MyCompany.MyProduct.Config 
0

Это может не работать для вас, но когда я бегу в это, я просто переименовать мой имен и/или класса. Что-то вроде Config.ConfigManager.

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