Creación de una clase para una interfaz en tiempo de ejecución, en C #

Estoy considerando tomar un conjunto de objetos, digamos que hay 3 objetos vivos en este momento, todos implementan una interfaz común, y luego envuelven esos objetos dentro de un cuarto objeto, también implementan la misma interfaz.

Las implementaciones de métodos y propiedades del cuarto objeto simplemente llamarían los bits relevantes en esos 3 objetos subyacentes. Sé que habrá casos en los que no tendrá sentido hacerlo, pero esto es para una arquitectura de multidifusión de servicios, por lo que ya existe un buen conjunto de limitaciones.

Mi pregunta es por dónde empezar. La generación de ese cuarto objeto debe hacerse en memoria, en tiempo de ejecución, por lo que estoy pensandoReflection.EmitDesafortunadamente, no tengo suficiente experiencia con eso para saber por dónde empezar.

¿Tengo que construir un ensamblaje en memoria? Se ve así, pero me gustaría un puntero rápido hacia donde debería empezar.

Básicamente, estoy considerando tomar una interfaz y una lista de instancias de objetos que implementen esa interfaz, y que construyan un nuevo objeto, que también implementen esa interfaz, que debería "multidifundir" todas las llamadas de métodos y el acceso de propiedad a todos los objetos subyacentes, en Lo menos posible. Habrá montones de problemas con las excepciones y demás, pero abordaré esas partes cuando las consiga.

Esto es para una arquitectura orientada a servicios, donde me gustaría tener un código existente que tome, como ejemplo, un servicio de registrador, para acceder ahora a múltiples servicios de registrador, sin tener que cambiar el código que usa los servicios. En su lugar, me gustaría ejecutar en tiempo real un contenedor de servicio de registrador que internamente simplemente llame a los métodos relevantes en múltiples objetos subyacentes.

Esto es para .NET 3.5 y C #.

Respuestas a la pregunta(3)

Su respuesta a la pregunta