Phase 16 of 30 · Topic 16.4

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.