Immediately after I read about Mohammed Barqawi’s Special QuickWatch for a DataSet, I downloaded it. Forget the fact that I sat there for a few hours, tweaking the code and adding stuff. I didn’t think I would publish the code, but rather email the author about the changes I made, but I can’t find his address, so here it is, if you want it.
But this isn’t what I am here to talk about.
I am here to talk about the fact that the only things you can do with Visual Studio.NET 2003’s Automation Model (DTE) are the bare minimum. Using the environment, you can use the watch to see the value of an expression. It comes out as a string. You might have data members, which you can expand and they will be evaluated as expressions on their own.
But that is all you can do. You take an expression, evaluate it to a string and get the members you can evaluate for it. The DataSet QuickWatch uses the expression <dataSetVariable>.GetXml() to get the Xml for the DataSet and creates a new DataSet object to read the data.
But what happens when you want to do anything more than that? You can’t, actually. So what can you do?
What was my original intention you ask?
My intention was to take an object and iterate through its members for a plugin I wanted to make (and also submit to The Compo). Thing is, you can’t really know what the members are, because if the type is not in a loaded assembly, you can’t read the type via reflection (whoopsie).
To Be Continued…