2015-04-09 3 views
0

У меня следующая ситуация:пространство имен Затенение Имя класса

Скомпилированный библиотека с пространством имен Library, который содержит класс Feauture.

Теперь есть еще одна библиотека в разработке, одна из которых намерена использовать эту функцию и которая была окрещена Library.Feature. Наконец, есть третья библиотека: Library.Feature.UI.

При работе в проекте Library.Feature.UI, в котором есть обе ссылки на другие библиотеки, VS много кричит о попытке использовать класс Feature, поскольку он видит его в первую очередь как пространство имен.

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

Предполагая, что у меня нет возможности изменить какое-либо пространство имен или существующие имена классов, существует ли способ обойти эту проблему?

+0

вы пытались с помощью директив псевдонимов? https://msdn.microsoft.com/en-us/library/aa664765(v=vs.71).aspx – Ric

+0

Что значит «VS кричит»? Это ничего не говорит нам. Предоставьте фактические сообщения об ошибках. –

+0

@ChrisDunaway Действительно, это ничего не говорит ...? Мое общее описание было неадекватным, чтобы определить, что может быть проблемой? Я не нуждаюсь в вас в Google Предупреждения для меня, я уже пробовал это. – Michael

ответ

1

Вы можете либо использовать полные имена, где можно указать пространство имен с именем типа, или вы можете использовать using directive создать псевдоним:

using MyFeature = Library.Feature; 
+0

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

+0

@Michael: Пожалуйста, добавьте более конкретную информацию о своей проблеме на ваш вопрос. Предпочтительно небольшой самодостаточный образец кода, который демонстрирует проблему. Кроме того, более точное описание ошибок компилятора, которые вы получаете (_VS - это крик много, не очень описательный) позволит нам лучше помочь решить вашу проблему. –

0

Это должно сделать трюк (ссылки)

using FeatureClass = Library.Feature; 
0

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

Делая это, вы можете различать класс и пространство имен.

напишите сверху сверху при использовании пространств имен.

using FeatureClass = Library.Feature; 

Для получения дополнительных знаний по этому вопросу, вы можете обратиться: https://msdn.microsoft.com/en-us/library/aa664765%28v=vs.71%29.aspx

Позвольте мне знать, если у вас есть какие-либо дальнейшие проблемы ...

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