Пространства имен и подпространства имен и библиотеки, на которые они ссылаются в C # - PullRequest
0 голосов
/ 10 июня 2010

Могу ли я иметь

namespace somenamespace
{
//references functionality in DLL_1
      namespace somesubnamespace
      {
       //references functionality in DLL_2
      }
}

И если я сделаю это, когда я использую только somenamespace, будет ли он включать только DLL_1 в решение, а если я буду использовать somenamespace.somesubnamespace, он будет включать DLL_1 и DLL_2 в решении?

Или DLL_1 и DLL_2 установлены в проекте, который содержит пространство имен, и независимо от того, какой я использую, обе DLL будут скопированы?

Ответы [ 3 ]

2 голосов
/ 10 июня 2010

Вам нужно только добавить ссылки на библиотеки DLL, которые ваш код фактически использует (прямо или косвенно).

Поэтому, если библиотека X имеет два класса, которые ссылаются на библиотеку A и B соответственно, и вы используете толькокласс, который ссылается на библиотеку A, вам вообще не нужна библиотека B.

Пространства имен являются организационными понятиями и не имеют к этому никакого отношения.

1 голос
/ 10 июня 2010

Ваш код выше в точности эквивалентен:

namespace.somesubnamespace
{

}

Если вы пишете это по-своему или если вы пишете так, доступ к somesubnamespace осуществляется точно так же, как и в вашем коде.

Пространства имен - это просто метки для организации вашего кода.В зависимости от того, к чему обращается ваш код, вы будете определять, какие ссылки вам нужны - но ответ на ваш вопрос «нет», ссылки для namespace не обязательно будут необходимы.namespace.somesubnamespace является независимым пространством имен в этом отношении.

1 голос
/ 10 июня 2010

Если вы добавите ссылки на библиотеки DLL, они будут скопированы.Поскольку для их использования необходимо добавить ссылку, оба будут скопированы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...