Как вы гарантируете, что .Net всегда ищет пространство имен в корне дерева пространства имен? - PullRequest
0 голосов
/ 13 февраля 2009

Есть ли способ сообщить .Net искать пространство имен из корня дерева пространств имен?

Скажем, у меня есть два совершенно независимых пространства имен:

Apple.Orange.Banana
Orange.Grape.Peach

Предположим, что они пришли от разных программистов, и "Orange" в каждом из них совершенно случайно.

Если я нахожусь внутри «Apple.Orange.Banana» и пытаюсь импортировать (или ссылаться) «Orange.Grape.Peach». Net вещи, которые я пытаюсь найти из «Orange» в «Apple». Orange.Banana».

Как мне сказать: «Посмотрите из корня , а не там, где я сейчас нахожусь». Это было бы здорово:

~Orange.Grape.Peach

Но, увы, этого не существует.

Я знаю, что некоторые из вас скажут, что я должен просто лучше планировать пространства имен, но что произойдет, когда я использую код из двух мест, которые поставляются с предварительно определенными пространствами имен, которые я не могу изменить, и они конфликтуют, как я отмечал выше?

Ответы [ 2 ]

6 голосов
/ 13 февраля 2009

Вы пытались использовать глобальную область действия разрешения? Например, если у вас есть следующее:

private global::Orange.Grape.Peach.classname x;

Кроме того, вы получаете различное разрешение в зависимости от того, импортируются ли пространства имен вне объявления пространства имен или внутри, поэтому

using System.Linq;
namespace MyLinq 
{
   // ...
}

может предоставить другие правила разрешения, чем:

namespace MyLinq 
{
   using System.Linq;

   // ...
}
3 голосов
/ 13 февраля 2009

Вы можете использовать псевдоним корня Orange следующим образом:

using RootOrange = Orange;

Тогда вы можете сделать:

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