命名空间字符串中的程序集

时间:2010-02-05 10:02:13

标签: c# reflection namespaces

有没有办法从命名空间字符串中获取程序集名称?例如,从“系统”获取“mscorlib”。

我的问题的原因是我正在逐个方法地创建Boo脚本,并且我需要以编程方式添加命名空间。 Boo中的结果字符串将显示为:

import System from mscorlib

我显然可以传入一组导入字符串,但是如果我只能传递一个引用列表,那就更具可扩展性了!

非常感谢

2 个答案:

答案 0 :(得分:5)

程序集名称和命名空间名称是完全正交的概念。他们之间没有真正的关系。如果没有检查一组已知程序集以查看它们包含的命名空间,则无法从命名空间名称获取程序集名称。例如,如果两个程序集(mscorlibSystem.Core)在System命名空间中声明了一个类型,你会怎么做?

答案 1 :(得分:1)

您可以从类型中获取它:

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

关于命名空间,请记住多个程序集可以定义相同的命名空间。