Sto lavorando su qualcosa che deve prendere un contratto (specificato come interfaccia) e creare un'istanza al volo, senza alcuna classe concreta formalmente definita che soddisfi questa interfaccia.Libreria Open Source per la generazione di tipi di calcestruzzo dalle interfacce durante il runtime?
Un esempio di sintassi è simile a questo:
IExampleMessage message = MessageBuilder.Create<IExampleMessage>(x => {
x.PropertyA = "Test";
x.PropertyB = 5;
});
Ho visto altre librerie .NET framework e offrono un comportamento come questo (NServiceBus viene in mente), e mi chiedo se c'è un Libreria di terze parti che allontana il codice di runtime gen. Pensavo che Castle DynamicProxy sarebbe stato un posto dove guardare, ma questo sembra concentrato interamente sul proxy e sull'intercettazione, e non sembra esporre l'aspetto della generazione del codice.
Potrei scrivere un'implementazione che utilizza Reflection.Emit per creare la classe al volo, tuttavia preferirei usare una solida libreria open source se ne esiste una.
Qualche suggerimento?
Sono curioso: come sarebbero supportate le interfacce con i metodi? Come intendi specificare un'implementazione personalizzata di un metodo con quella sintassi? –
Le interfacce con i metodi non sono supportate –
Ho visto codice simile in BLTookit – adontz