Thottam R. Sriram
Development Lead, Hosted Services (Current)
Program Manager, CLR Team (2005-2007)
Generic list and powershell
I met with an accident recently riding my motorcycle and hence was unable to blog for some time....
Date: 10/12/2009
Debug .NET Framework Source Code and loading SOS in Visual Studio
I found this blog post from Shawn Burke to be very useful. Comes in handy if you have to step...
Date: 05/08/2009
Asynchronous delegates and callback
I was debugging some issue related to asynchronous delegates and wanted to share that information...
Date: 04/11/2009
System.Data.DataException and System.Data.DataSet.RaiseMergeFailed exception
This was another interesting issue I encountered recently. The error presented itself as an event...
Date: 03/24/2009
CString and GetLength
I ran into this problem recently when debugging some native code and thought that it will be good to...
Date: 02/06/2009
NTSD and SOS: StopOnException
using System; class Program { static void Main(string[] args) { Program p = new Program();...
Date: 01/15/2009
XMLSerializer, XDocument and LINQ
I took the sample from my previous post and wanted to use LINQ to query the XML. You can pretty much...
Date: 10/01/2008
XmlSerialization to generate and consume XML
I want to talk about Xml Serialization this month. One of the work I was involved in recently...
Date: 08/29/2008
Simple sample for Events and Delegates
I wanted to write a small sample to illustrate events and delegates. Here is a compact sample that...
Date: 08/01/2008
DBNull and Nullable types
When we have C# code interacting with the data base you run into this problem. Let me try and...
Date: 06/30/2008
Diagnostics: Using ETW tracing in .NET 3.5 (EventProviderTraceListener)
.NET exposes an elegant diagnostics model that can be used by applications. It is a bit confusing to...
Date: 05/29/2008
Unhandled Exception handler (UnhandledExceptionEventHandler) to collect more information about unexpected exceptions
To continue on the exception post from last week I did a bit more research and learnt some more. I...
Date: 04/30/2008
Handling, throwing - exceptions and Clean up on error
There are four ways to throw an exception in my opinion. They are: 1. Throw a new exception a. throw...
Date: 03/24/2008
Code Access Security, LinkDemand and Effective Sandbox
I wrote about Deny and Assert in my previous blog post. In my repeated attempts to get the previous...
Date: 02/12/2008
Code Access Security - Understanding Demand and Declarative Security
I wanted to talk about Code Access Security this time. Code Access Security is a big in itself. In...
Date: 01/25/2008
Calling delegates using BeginInvoke, Invoke, DynamicInvoke and delegate
I wanted to write about delegates this month. There are different ways in which you can invoke...
Date: 11/01/2007
Posting from word
I was cutting and pasting from word till now to post. It was long in my list to try and use word and...
Date: 09/19/2007
Why is generic constructor not allowed?
Generic argument is not allowed in the constructor. When I compile the code below I get a...
Date: 09/19/2007
Same name for a generic and non-generic class
I was writing a sample to do something and I noticed that when I declare and instantiate a generic...
Date: 09/19/2007
New role within Microsoft
After almost two years with the CLR team I have decided to move on and take new challenges. I have...
Date: 08/20/2007
MSDN article about COM Connection Points and managed client
I wrote my second article in MSDN which got published in the September issue. This article is about...
Date: 08/20/2007
Managed C++ and C#
I tried writing a sample to use managed C++ to interact with managed code and here is my learning. I...
Date: 07/16/2007
How to control the version of .NET Framework your application runs against?
Let us look at a small sample that illustrated how this configuration entry works. using System;...
Date: 06/11/2007
Debugging load problems using fusion log
Fusion log comes in very handy when you want to understand or debug binding behaviors. Let us take...
Date: 06/02/2007
PInvoke-Reverse PInvoke and __stdcall - __cdecl
I came across this issue yesterday and thought that I will blog about the same. The example below...
Date: 06/02/2007
Load contexts and Type.GetType
Type.GetType(AN,T) actually translates to Assembly.Load(AN).GetType(T). This actually can be the...
Date: 05/11/2007
Two versions of an assembly in an AppDomain
The CLR binder today allows you to either accidentally or intentionally load two versions of a given...
Date: 04/11/2007
NTSD and SOS – Adding a break point on a method with reference to a specific thread
I wanted to set a conditional break point from managed code and it was hard to do that using SOS. In...
Date: 03/02/2007
NTSD and SOS basics
I wanted to take a very simple console application and use ntsd with SOS to debug it. The example...
Date: 02/12/2007
MDBG ver 2.1 released
I was talking with Mithun about ntsd-SOS just recently. He was trying to convince me to use mdbg...
Date: 02/07/2007
Using ILASM and ILDASM
I wanted to write another small sample to demonstrate how you can use ilasm to modify a compiled...
Date: 02/01/2007
Introduction to Versioning and BindingRedirect
I want to share with you this sample that demonstrates how to version an assembly. An...
Date: 01/30/2007
My article on MSDN about COM interop
My article “Introduction to COM interop” got published in MSDN magazine this month. This article...
Date: 12/18/2006
Type forwarding using TypeForwardedTo attribute in Runtime.CompilerServices
We used this feature to solve a problem internally and I was tempted to blog about this cool...
Date: 11/16/2006
Managed Debugging Assistants (MDA's)
When I read through the responses for the questionnaire below I saw that many users were not aware...
Date: 10/20/2006
Tell us about your experience with COM interop
COM interoperability is a very powerful feature in the CLR that bridges the gap between native and...
Date: 09/27/2006
Lang.NET Symposium 2006 Videos available
The videos of the presentations from Lang.NET symposium 2006 which was held in Redmond from July...
Date: 09/15/2006
Using CodeDOM to generate CSharp (C#) and VB code
I spent sometime to understand CodeDOM and in the process wrote a sample which will help me...
Date: 08/15/2006
Accessing CreateProcess from C# and VB.NET
I came across this issue recently. I was trying to access CreateProcess using DLLImport from managed...
Date: 08/11/2006
Lang.NET Symposium 2006
I still remember us planning for this event a few months back. It started off as a small group of...
Date: 08/08/2006
Passing Generic List and inheritance ...
I came across this interesting scenario when I was looking into some issues. In a normal method you...
Date: 07/11/2006
Lang .Net 2006 Compiler Symposium
Registration is now open for the Lang .Net 2006 Compiler Symposium which will be held July 31st...
Date: 07/05/2006
Kathy's blog
Kathy introduced me in her blog as the new program manager who will be owning Reflection, Reflection...
Date: 04/28/2006
Creating nested types dynamically using the TypeResolve event
Creating a Type dynamically using the TypeResolve event. I came across this issue recently when I...
Date: 04/28/2006
Generic dynamic method using DefineMethod
This example illustrates how you can define a generic dynamic method and call it. In the sample...
Date: 04/25/2006
DynamicMethod and TypeBuilder.DefineMethod
There are two ways you can create a method dynamically. DynamicMethod class TypeBuilder.DefineMethod...
Date: 04/25/2006
Using SetRaiseMethod and GetRaiseMethod and invoking the method dynamically
The GetRaiseMethod returns null for all events declared with the event keyword as explained in the...
Date: 03/17/2006
Difference between .cctors and ctors
A static constructor is called when a direct access to any static member of the class is made. The...
Date: 03/16/2006
Overriding a property using new and reflection
When you override a property using new with a new type there is discrepancy in behavior from C# and...
Date: 03/16/2006
Reflecting on ParameterInfo for Generic class when ContainsGenericParameter is FALSE will return null
using System; using System.Reflection; public class MyClass<T> { public delegate T...
Date: 02/15/2006