部分类在单独的dll中

是否有可能有两个部分(相同的命名空间,相同的类名称)在不同的DLL分部类?

从MSDN – 部分类和方法 :

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

不。部分class级是纯粹的语言function。 编译程序集时,文件被组合起来创buildtypes。 无法将文件分散到不同的程序集中。

然而,根据你想要做什么,你可能可以使用扩展方法来完成你所需要的。

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

当您想要将方法添加到不同的dll中的类时,可以使用扩展方法。 这种方法的一个缺点是你不能添加静态方法。

问题是为什么你想在另一个程序集中创build一个部分类? 你可以在程序集中定义抽象类和接口,也许你需要看看。

虽然其他答案确实提供了令人不愉快的“不”,即任何登陆此页面的人都不想看到或听到,但我还是被另一个在这里没有提到的思想所震撼。 如果在集会中允许部分class级,那么人们就可以访问私人成员,使其不属于他所写的现有types,并允许他以原作者无意的方式操纵它们,从而危害所有的inheritanceclass级。

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