代码之家  ›  专栏  ›  技术社区  ›  Tony The Lion

需要完全限定类型名

  •  7
  • Tony The Lion  · 技术社区  · 14 年前

    我需要在运行时解析程序集和类型,并且需要找到完全限定的类型名。由于某种原因,我无法正确地找到它,因为我一直收到一个异常,说它找不到指定的类型。

    在app.config文件中定义了要查找的程序集,如下所示:

    <configSections>
        <section name="modules" type="Microsoft.Practices.Composite.Modularity.ModulesConfigurationSection, Microsoft.Practices.Composite"/>
      </configSections>
      <modules>
        <module assemblyFile="G:\Data\Visual Studio 2008\Projects\Race Management System.Shell\ConfigurationModularity\bin\Debug\Modules\Driver.Data.Module.dll" moduleType="Driver.Data.Module.DriverDataModule, DriverDataModule" moduleName="Driver.Data.Module.DriverDataModule"></module>
      </modules>
    

    程序集称为: 驱动器数据模块 程序集中的命名空间为: 驱动器数据模块 类型名为: 驱动数据模块 ,这也是.cs文件的名称。

    我似乎找不到如何在XML文件中正确指定名称。有人能帮我弄一下完全限定的类型名吗?

    这是针对复合wpf应用程序的。

    谢谢!

    2 回复  |  直到 14 年前
        1
  •  17
  •   Adam Lear    14 年前

    尝试 Driver.Data.Module.DriverDataModule, Driver.Data.Module

    还可以通过实例化该类型的对象并检查其类型的assemblyQualifiedName属性来查找类型的完整程序集限定名:

    DriverDataModule module = new DriverDataModule();
    string fullyQualifiedName = module.GetType().AssemblyQualifiedName;
    
        2
  •  0
  •   Tim Robinson    14 年前

    你犯了什么错误?如果您很难从应用程序中获取完整的错误消息,并且您认为您的应用程序在加载程序集本身时遇到问题,则可以使用 fuslogvw 用于将完整详细信息记录到磁盘的工具。

    同样值得在reflector中打开程序集,以再次检查程序集的全名(打开reflector时显示在窗口左下角),并检查类型是否在您认为是的命名空间中定义。