The dynamic language runtime (DLR) is a new runtime environment that adds a set of services for dynamic languages to the CLR. For more details regarding new features of .NET Framework 4 please read New C# Features in the .NET Framework 4 and What's New in the .NET Framework 4CodeProject
In this blog I’ll show how this feature can make life easy while developing/debugging COM applications and compare the same COM application running in frameworks prior to .NET Framework 4.
I’ll compare how easy it is to debug a Word Addin in .NET Framework 4 than frameworks prior to it e.g. .NET Framework 3.5.
As displayed below I’ve the screenshot from VS 2008(.NET Framework 3.5) Quickwatch window
I want to visualize the items of this collection so when I try to get the item at index 1 of COM object (ComAddIns in this example) .NET runtime throws exception as displayed below
In VS 2010(.NET Framework 4) Quckwatch window as highlighted in Red there is now a Dynamic View that displays members of the COM object I am debugging
When the Watch window displays an object that implements the IDynamicMetaObjectProvider. interface, the debugger adds a special Dynamic View node to the watch display. The Dynamic View node shows members of the dynamic object but does not allow editing of the member values. For more information please read Dynamic View
Now I can view the item(ComAddin in this example) at index 1 of COMAddins object in .NET Framework 4 because of DLR as displayed below