【问题标题】:Assembly name from namespace string命名空间字符串中的程序集名称
【发布时间】:2011-01-13 11:09:26
【问题描述】:

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

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

import System from mscorlib

我显然可以传入一个导入字符串的集合,但如果我可以只传递一个引用列表,那将更具可扩展性!

非常感谢

【问题讨论】:

    标签: c# reflection namespaces


    【解决方案1】:

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

    【讨论】:

    • 这是一个非常好的观点!我没想到会这样,谢谢 Mehrdad!
    【解决方案2】:

    你可以从一个类型中得到它:

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

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

    【讨论】:

    • 是的,我已经尝试过了,虽然必须在命名空间中使用一个对象有点笨拙:P 非常感谢你们的回答!
    猜你喜欢
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多