Библиотека с открытым исходным кодом для генерации конкретных типов из интерфейсов во время выполнения?

Я работаю над тем, что необходимо контракт (заданный как интерфейс) и создайте экземпляр на лету, без какого-либо формально определенного конкретного класса, который соответствует этому интерфейсу.

Пример синтаксиса выглядит следующим образом:

IExampleMessage message = MessageBuilder.Create<IExampleMessage>(x => {
   x.PropertyA = "Test";
   x.PropertyB = 5;
});

Я видел другие библиотеки .NET и фреймворки предлагают поведение вот так (на ум приходит NServiceBus), и мне интересно, есть ли сторонняя библиотека, которая абстрагирует генерацию кода времени выполнения. Я думал, что Castle DynamicProxy - это то место, где можно посмотреть, но, похоже, он полностью сосредоточен на проксировании и перехвате и, похоже, не раскрывает аспект генерации кода.

Я мог бы написать реализацию, которая использует Reflection.Emit для создания класса на лету, однако я бы предпочел использовать надежную библиотеку с открытым исходным кодом, если таковая существует.

Есть предложения?

5
задан Jonathan Holland 21 August 2011 в 22:51
поделиться