Other developers take that platform and produce their own .NET types and ship them as assemblies (DLLs) or included in their executables. Each team will provide they own documentation for their types. Monad makes this information avilable as part of its SDK.

Then there is the question: which of these types are available to Monad. The answer is that Monad provides access to any public .NET type which is loaded in process. The following sequence tells you what assemblies you have loaded in your current process (appdomain actually but we don’t need to go there now).

This call returns an assembly object. This object has a method GetExportedTypes() which gets all the public types (as opposed to private types which you don’t have access to) for that assemblies. Thus if you wanted to get all the types available in process you would do the following:

This is a good point to take a tangent. In an earlier post, I pointe dou that some .NET types can parse strings and how wonderful that was. You might reasonably ask yourself the question: Which types support the Parse() method. Here is a function that helps address that:

Don’t you think that "foreach" is more like "select"?And it would be helpful to exchange semantics between both,because most of the time under "foreach" you mean "select" and current "select" semantics is more confusing than "foreach".