Criando uma classe para uma interface em tempo de execução, em c #

Eu estou olhando para pegar um conjunto de objetos, digamos que há 3 objetos vivos no momento, que todos implementam uma interface comum, e depois envolvem esses objetos dentro de um quarto objeto, também implementando a mesma interface.

As implementações de métodos e propriedades do quarto objeto simplesmente chamariam os bits relevantes nesses três objetos subjacentes. Eu sei que haverá casos aqui onde não fará sentido fazer isso, mas isso é para uma arquitetura multicast de serviço, portanto já há um bom conjunto de limitações no lugar.

Minha pergunta é por onde começar. A geração desse quarto objeto deve ser feita na memória, em tempo de execução, então estou pensandoReflection.Emitinfelizmente não tenho experiência suficiente para saber por onde começar.

Eu tenho que construir uma montagem na memória? Com certeza parece assim, mas eu gostaria apenas de um ponteiro rápido para onde eu deveria começar.

Basicamente eu estou olhando para tomar uma interface e uma lista de instâncias de objeto todos implementando essa interface e construir um novo objeto, também implementando essa interface, que deve "multicast" todas as chamadas de método e acesso de propriedade a todos os objetos subjacentes. menos tanto quanto possível. Haverá muitos problemas com exceções e coisas assim, mas vou abordar esses bits quando chegar a eles.

Isto é para uma arquitetura orientada a serviços, onde eu gostaria de ter o código existente que leva, por exemplo, um logger-service, para agora acessar vários serviços de logger, sem ter que alterar o código que usa os serviços. Em vez disso, gostaria de gerar em tempo de execução um wrapper do logger-service que internamente simplesmente chama os métodos relevantes em vários objetos subjacentes.

Isso é para .NET 3.5 e C #.

questionAnswers(3)

yourAnswerToTheQuestion