2009-09-03 2 views
-1

У меня есть два пространства:.Net пространство имен Вопрос

1) foo.bar

2) Another.Foo.Bar

Из класса в пространстве имен 2, как я ссылаться на класс в пространство имен 1? Использование Foo.Bar оставляет вас в пространстве имен 2 еще ...

Надеюсь, это достаточно понятно!

Спасибо.

ответ

9

Вам необходимо использовать global qualifier.

Просто добавьте:

using GFooBar = global::Foo.Bar; 

Затем обратитесь к нему как:

GFooBar.MyClass = new GFooBar.MyClass(); 

или

global::Foo.Bar.MyClass = new global::Foo.Bar.MyClass(); 
+0

Работал с удовольствием - спасибо :) – UpTheCreek

-1

Полностью квалифицируйте название класса. Полноценное имя типов в вашем первом пространстве имен не совпадает с полными именами типов во втором.

Таким образом, из кода в Another.Foo.Bar имен вы можете сказать Foo.Bar.SomeType, и это отличает (в C#, по крайней мере — VB работает немного отличается) от Foo.Bar.SomeType в текущем пространстве имен, так как полное имя данного типа в является Another.Foo.Bar.SomeType.

+0

Это не работает для меня (C#):/Они находятся в разных сборки - возможно, это как-то связано с этим. – UpTheCreek

1

Я думаю, что это угловой корпус, для которого был введен global::Foo.Bar. global:: означает внешний вид.

+0

Хэнк: Он должен быть глобальным :: Foo.Bar. См. Http://msdn.microsoft.com/en-us/library/htccxtad%28VS.80%29.aspx –

+0

Да, я уже проверял/редактировал. –

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