I've continued my exploration of the .NET Framework tools. Today, the time came for SoapSuds.exe and MgmtClassGen.exe.
The first one is interesting, because SoapSuds.exe is simply a driver around a couple of classes called
SoapSudsArgs. Now, that by itself isn't anything out of the ordinary. What is interesting, though, is that both of these classes are not defined inside SoapSuds.exe or the .NET framework libraries, but instead in a little known assembly called, you guessed it, SoapSudsCode.dll.
So what? Well, I found prety intriguing the fact that this assembly is not installed anywhere on the filesystem but the GAC. Yep. Nowhere else. Now, I'm not quire sure why they went through all this trouble. Truth is, there's not much magic going on inside SoapSudsCode either; it's basically a large driver around the
MetaData class in the
MgmtClassGen.exe is actually a lot simpler. The entire application consists essentially of some code to parse the arguments and a call to the
GetStronglyTypedClassCode() method of the
All of this outlines one of my favourite things in .NET: Quite a few bunch of the development tools we use daily are nothing more than simple wrappers around functionality already provided in the base class libraries. It's just so rich! And it's all functionality you could take advantage of if you were to build your own tools!