views:

98

answers:

2

Is there a way of getting the assembly name from a namespace string? Eg, get "mscorlib" from "System".

The reason for my question is I'm creating Boo scripts method-by-method and am required to add namespaces programmatically. The resulting string in Boo would read:

import System from mscorlib

I could obviously pass in a collection of import strings, but if I can just pass a list of references, that would be far more scalable!

Many thanks

+3  A: 

Assembly names and namespace names are totally orthogonal concepts. There are no real relations between them. Short of examining a set of known assemblies to see what namespaces they contain, there's no real way to get assembly name from namespace name. For instance, what would you do if two assemblies (both mscorlib and System.Core) declared a type in the System namespace?

Mehrdad Afshari
That's a very good point! I hadn't thought about it like that, thank you Mehrdad!
Robert Reid
A: 

You can get it from a type:

Console.WriteLine(typeof(System.Object).Module.Name);

About the namespace, remember that more than one assembly could define the same namespace.

Paolo Tedesco
Yeah, I've given that a go, although having to use an object within the namespace is a little hacky :P Thank you both very much for your answers!
Robert Reid