Estoy trabajando en algo que necesita tomar en un contrato (especificado como una interfaz) y crear una instancia sobre la marcha, sin una clase concreta formalmente definida que cumpla con esta interfaz.¿Biblioteca de código abierto para generar tipos concretos de interfaces durante el tiempo de ejecución?
Un ejemplo de la sintaxis es la siguiente:
IExampleMessage message = MessageBuilder.Create<IExampleMessage>(x => {
x.PropertyA = "Test";
x.PropertyB = 5;
});
que he visto otras bibliotecas y frameworks .NET ofrecen un comportamiento como éste (NServiceBus viene a la mente), y me pregunto si hay una Biblioteca de terceros que abstrae el gen de código de tiempo de ejecución. Pensé que Castle DynamicProxy sería un lugar para buscar, pero esto parece centrarse por completo en el proxy y la interceptación, y no parece exponer el aspecto de generación de código.
Podría escribir una implementación que utiliza Reflection.Emit para crear la clase sobre la marcha, sin embargo, prefiero usar una biblioteca de código abierto sólida, si existe.
¿Alguna sugerencia?
Tengo curiosidad: ¿cómo se soportarían las interfaces con los métodos? ¿Cómo piensa especificar una implementación personalizada de un método con esa sintaxis? –
No se admiten interfaces con métodos –
Vi código similar en BLTookit – adontz