How Dynamic Language Runtime(DLR) feature in .NET Framework 4 is a boon for debugging COM objects

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 4

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


Shared By : Atul Verma

Blog :

Atul Verma

I am working at Microsoft as a .NET Consultant. I have an experience of 5 years in .NET technologies and application packaging. My expertise include .NET Framework(4.0, 3.5, 3.0, 2.0), WPF, WCF,, AJAX, Web Services, Enterprise Library, Enterprise Applications, SharePoint 2010, Web Services, SQL Server (2008, 2005), Open Xml, MS Word Automation.

One Comment to “How Dynamic Language Runtime(DLR) feature in .NET Framework 4 is a boon for debugging COM objects”

Comments are closed.