单独的dll中的部分类

Bra*_*rad 148 c# dll partial-classes

是否可以在单独的DLL中将两个部分(相同的命名空间,相同的类名称)分配给部分类?

Jus*_*ner 223

MSDN -Partial类和方法:

必须在同一个程序集和相同的模块(.exe或.dll文件)中定义所有部分类型定义,即相同类型的部分.部分定义不能跨越多个模块.


Ada*_*son 35

不可以.部分课程是纯粹的语言功能.编译程序集时,将合并文件以创建该类型.无法将文件传播到不同的程序集中.

但是,根据您的目的,您可以使用扩展方法来完成您的需要.


Dar*_*rov 12

不,这是不可能的.编译程序集时,需要完成该类.


thu*_*eys 5

如果要将方法添加到其他dll中的类,可以使用扩展方法.此方法的一个缺点是您无法添加静态方法.


dot*_*NET 5

尽管其他答案的确提供了令人讨厌的“否”字样,使该页面上的任何人都不想看到或听到,但我被另一个尚未提及的想法所震惊。如果允许跨程序集使用部分类,则可以访问非他编写的现有类型的私有成员,从而允许他以原始作者不希望的方式操纵它们,从而危害所有继承类的功能。太。

不仅如此,还需要重新编译其他程序集(及其子程序)中的那些类,以使其起作用。因此,在逻辑上不可能允许将类拆分为不同的程序集。

  • 如果确实需要,人们可以通过反射轻松地搞乱私有成员。不可能在程序集之间拆分类,因为不允许循环引用,并且需要它们才能使类的不同部分进行交互。 (2认同)