There are cases when we build "something" at runtime. Well known examples of that are EntityFtamework, Automapper. A lot of articles describe how to do something like this with Expressions, Reflection emit, DynamicMethod (which is reflection emit essentially).
But there is an easier way to do. We can dynamically create some source code, compile it to assembly, load this assembly and here we go. It's easier because you as C# programmer create C# code. In order to use expressions and reflection emit you have to learn how to do that and I think this it not the easiest topics.
Why compiling of source code at runtime is less popular approach than Expression and Reflection emit?