¿Es posible tener dos partes (mismo espacio de nombre, mismo nombre de clase) para una clase parcial en archivos DLL separados?
c#
dll
partial-classes
Puntilla
fuente
fuente
Respuestas:
De MSDN - Clases y métodos parciales :
fuente
No. Las clases parciales son una característica puramente del lenguaje. Cuando se compila un ensamblaje, los archivos se combinan para crear el tipo. No es posible distribuir los archivos en diferentes ensamblajes.
Sin embargo, dependiendo de lo que desee hacer, es posible que pueda usar métodos de extensión para lograr lo que necesita.
fuente
No, no es posible. Cuando se compila el ensamblaje, la clase debe estar terminada.
fuente
Si bien otras respuestas proporcionan el desagradable "No" que nadie que desembarcó en esta página no quería ver ni oír, 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 miembros privados de tipos existentes que no fueron escritos por él, lo que le permite manipularlos de formas que no fueron intencionadas por el autor original, poniendo en peligro la funcionalidad de todas las clases heredadas. también.
No solo eso, esas clases en otras asambleas (y sus hijos) tendrían que volver a compilarse para que funcione. Por lo tanto, lógicamente no es posible permitir dividir una clase en diferentes ensamblajes.
fuente
Puede usar métodos de extensión cuando desee agregar un método a una clase en un dll diferente. El único inconveniente de este método es que no puede agregar métodos estáticos.
fuente
La pregunta es ¿por qué querrías hacer una clase parcial en otro ensamblaje? Puede definir clases abstractas e interfaces a través de ensamblajes, tal vez necesite investigar eso.
fuente
Probablemente solo desee crear una clase Wrapper dentro de su propia biblioteca, alrededor de la clase en la biblioteca de la tercera parte. Luego agregue cualquier funcionalidad a la clase contenedora.
fuente