The Dynamic Languague Runtime (DLR) is a runtime environment that adds a set of services for dynamic languages to the common language runtime (CLR). The DLR makes it easier to develop dynamic languages to run on the .NET Framework and to add dynamic features to statically typed languages.
Dynamic languages can identify the type of an object at run time, whereas in statically typed languages such as C# and Visual Basic you must...
Most dynamic languages provide the following advantages for developers
The ExpandoObject represents an object whose members can be dynamically added and removed at runtime.
NOTE: Sistrategia.Entities.Entity could be implemented like a ExpandoObject? Or we can build a DynamicEntity?
The dynamic keyword is used to declare variables that should be late-bound (at compiler level). When you use the dynamic keyword to interact with a normal instance, the DLR performs late-bound calls to the instance's normal methods.
The IDynamicMetaObjectProvider interface allos a class to take control of its late-bound behavior. When you use the dynamic keyword to interact with a IDynamicMetaObjectProvider implementation, the DLR calls the IDynamicMetaObjectProvider methods and the object itself decides what to do.
This DLR is an Open Source project dlr.codeplex.com.
NEWS: Because the DLR is in the C#/Roslyn team (since before C# 4.0), the DLR moved to github and is now fully open source Roslyn Github
References: