Runtime IL Generation with `System.Reflection.Emit.TypeBuilder`
1Concept
`TypeBuilder` and `AssemblyBuilder` generate dynamic assemblies and types entirely in memory at runtime, enabling dynamic proxy creation (AOP / Interceptors).
2Architecture Diagram
[ AssemblyBuilder.DefineDynamicAssembly ]
│
▼
[ TypeBuilder.DefineType("DynamicProxy") ] ──> Emits IL Opcodes ──> Creates Type at Runtime!3Code Example
C# 13 & .NET 9
using System;
public class DynamicTypeEmitConcept
{
public static void Main()
{
Console.WriteLine("TypeBuilder dynamically generates classes, fields, and virtual method overrides at runtime.");
}
}4Expected Output
TypeBuilder dynamically generates classes, fields, and virtual method overrides at runtime.
5Key Takeaways
- ✓Powers ORM lazy-loading proxies and dependency injection interceptors (Castle DynamicProxy).
- ✓Incompatible with Native AOT trimming; use Roslyn Source Generators instead for modern .NET.