c# partial - Clases parciales en dlls separados




class what (6)

La pregunta es por qué querría hacer una clase parcial en otra asamblea? Puede definir clases abstractas e interfaces a través de ensamblajes, tal vez necesite investigar eso.

¿Es posible tener dos partes (el mismo espacio de nombres, el mismo nombre de clase) en una clase parcial en DLL separadas?


No. Las clases parciales son una característica puramente lingüística. Cuando se compila un ensamblaje, los archivos se combinan para crear el tipo. No es posible distribuir los archivos en diferentes conjuntos.

Sin embargo, dependiendo de lo que quiera hacer, es posible que pueda usar métodos de extensión para lograr lo que necesita.


Desde MSDN -Partial Classes and Methods :

Todas las definiciones de tipo parcial que deben ser partes del mismo tipo deben definirse en el mismo ensamblado y el mismo módulo (archivo .exe o .dll). Las definiciones parciales no pueden abarcar múltiples módulos.


Puede usar métodos de extensión cuando desee agregar un método a una clase en una dll diferente. El único inconveniente de este método es que no puede agregar métodos estáticos.


Mientras que otras respuestas proporcionan el desagradable "No" que cualquier persona que aterrizó en esta página no quería ver o escuchar, me llamó la atención otro pensamiento que aún no se ha mencionado aquí. Si se permitieran clases parciales en las asambleas, se obtendría acceso a los miembros privados a tipos existentes que no fueron escritos por él y se le permitiría manipularlos de forma no intencionada por el autor original, poniendo en peligro también a todas las clases heredadas.

No solo eso, esas clases en otras asambleas (y sus hijos) necesitarían ser recompiladas para que funcione. Por lo tanto, lógicamente no es posible permitir la división de una clase en diferentes conjuntos.


Intente ejecutar Visual Studio como administrador dentro de Windows.





c# dll partial-classes