Что ж, весь код C # компилируется во время выполнения, поскольку это JIT-компилятор. Я предполагаю, что вы имеете в виду Reflection.Emit для создания классов и т. Д. На лету. Вот пример, который я недавно видел в библиотеке Xml-Rpc.Net.
Я создаю интерфейс C #, который имеет ту же сигнатуру, что и вызовы методов службы XML-RPC, например
IMyProxy : IXmlRpcProxy
{
[XmlRpcMethod]
int Add(int a, int b);
}
Тогда в моем коде я называю что-то вроде
IMyProxy proxy = (IMyProxy)XmlRcpFactory.Create(typeof(IMyProxy));
Для создания полнофункционального прокси-сервера используется генерация кода во время выполнения, поэтому я могу использовать его следующим образом:
int result = proxy.Add(1, 2);
Затем он обрабатывает вызов XML-RPC для меня. Довольно круто.