Tengo una clase que se usa en una aplicación cliente y en una aplicación de servidor. En la aplicación de servidor, agrego algunas funcionalidades a los métodos de extensión de clase. Funciona genial. Ahora quiero un poco más:¿Métodos de extensión virtual?
Mi clase (B) hereda de otra clase (A).
Me gustaría adjuntar una función virtual a A (digamos Execute()), y luego implementar esa función en B. Pero solo en el servidor. El método Execute() necesitaría hacer cosas que solo es posible hacer en el servidor, usando tipos que solo el servidor conoce.
Hay muchos tipos que heredan de A como B, y me gustaría implementar Execute() para cada uno de ellos.
Esperaba que pudiera agregar un método de extensión virtual a A, pero esa idea no parece volar. Estoy buscando la forma más elegante de resolver este problema, con o sin métodos de extensión.
Gracias Marc. Implementaré algo como esto. Para mí es un poco más complicado, ya que serializo estas clases y las envío por cable desde el servidor al cliente y viceversa. Así que DI tradicional puede ser un poco complicado, pero creo que puedo implementar un equivalente en el servidor de clase B (probablemente heredando de B) y cuando el cliente envía al servidor una instancia de B, tendré que reemplazarlo por un nueva instancia de ServerB. – Lucas
El enfoque de registro funciona bien con serialización. Utilizo ese enfoque para compartir ensamblajes con objetos WCF ... –