2009-10-05 1 views

ответ

4

Нет, вы не можете пропустить класс над несколькими сборками.
При создании Namespace1.Class1 в assembly1 & Namespace1.Class1 в assembly2, то вы ссылаетесь как сборки в вашем проекте, вы будете иметь:

  • 2 различных классов
  • ошибок
  • компиляции (конфликт): The type 'Namespace1.Class1' exists in both 'assembly1.dll' and 'assembly2.dll' ...
1

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

0

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

1

Если вы определяете два класса в двух отдельных пространствах имен, у вас есть два разных класса, существующих в двух разных пространствах имен, которые не имеют ничего общего друг с другом. В CLR, они выглядят следующим образом:

NamespaceA.ClassA 
NamespaceB.ClassA 

Даже если вы отметите их частичное, они все еще находятся различные классы в отдельных пространствах имен. Это связано с тем, что пространства имен просто добавляются к имени класса при компиляции класса. Помимо этого, CLR не знает понятия пространств имен или частичных классов. Это все магия компилятора.

Разъяснение: При определении частичного типа, вы определяете тип . Тип никогда не, разделенный на сборку или пространство имен.

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

  • Нет связанных вопросов^_^