Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Assembly name from namespace string

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

like image 389
Robert Reid Avatar asked Feb 05 '10 10:02

Robert Reid


2 Answers

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?

like image 178
mmx Avatar answered Sep 28 '22 06:09

mmx


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.

like image 25
Paolo Tedesco Avatar answered Sep 28 '22 06:09

Paolo Tedesco