Muchos de los enfoques que se pueden tomar en función de la cantidad de control sobre el código que realmente tiene:
1) ¿Está eliminando una instancia de una clase cerrada al código de terceros? Si es así, no hay mucho que pueda hacer, excepto rezar para que su tercero acepte una interfaz en lugar de un objeto concreto.
Es totalmente posible escribir ganchos en el CLR para interceptar los métodos en su clase sellada, que es cómo funcionan algunos marcos de burla para burlarse de los métodos no virtuales y las clases selladas. I no lo haga recomendar esto porque su código de terceros se escribió contra una implementación particular de un objeto, y cambiar la implementación bajo la nariz del código de terceros podría tener consecuencias no triviales e indefinidas.
2) ¿Está consumiendo la clase sellada en su propio código? Si es así, ¡ve a ir a la envoltura del gadget! Cree una clase no sellada con los mismos métodos públicos que su clase sellada, los métodos públicos deben pasar a su objeto sellado, luego puede anular la funcionalidad de su clase según sea necesario.
3) ¿Es el propietario del código de la clase sellada? Si es así, encuentre la definición de clase, haga doble clic en la palabra clave 'sellada' para resaltarla, presione la tecla Eliminar según sea necesario;) O tal vez cambie los métodos que aceptan su objeto sellado por una interfaz con los mismos métodos públicos.
Pero no podrá sustituir la clase de sujeto con la clase de proxy porque tienen diferentes tipos. – Ikke
@ikke: Eso es verdad. Por lo tanto, no dije el patrón proxy. – Ikaso
¿no sería eso un adaptador en lugar de un proxy? –