2010-05-20 1 views
3

Заголовок должен сказать, что все это ...Можно ли ссылаться на два одинаково именных пространства имен?

EDIT: Видимо, название не сказал, все это, но Джон Скит был в состоянии понять, что я имел в виду в любом случае!

+0

Вы не видели [это сообщение] (http://meta.stackexchange.com/questions/9134/jon-skeet-facts/9135#9135) - он знает ответ, прежде чем вы напишете вопрос! – slugster

+0

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

+0

Может быть, он мог бы вывести это из-за того, что в противном случае не было бы проблем, связанных с решением? Кто знает, он Джон Скит и работает таинственным образом! :-) –

ответ

6

Предполагая, что вы хотите ссылаться на типы в том же пространстве имен (или даже на то же полное имя типа), предоставляемое двумя различными сборками, вы можете сделать это с C# 2 и до extern aliases.

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

Anson Horton имеет blog post об альтернативных псевдонимах и использует их в Visual Studio.

2

Мммм, да и нет ....

Вам они могут быть два «различных» пространств имен, потому что они находятся в разных файлах или сборки, но в коде они образуют только одно пространство имен - так в реальности вы ссылаетесь только на одно пространство имен.

1

Точно. Существуют серьезные причины иметь одно пространство имен в разных сборках - например, если какая-то часть написана в C#, а некоторые - в C++/CLI.

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

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