需要完全限定的类型名称

时间:2010-03-08 19:23:51

标签: c# wpf assembly-name

我需要解析一个程序集并在运行时键入,我需要找到完全限定的类型名称。出于某种原因,我无法做到正确,因为我一直得到一个例外,说它无法找到指定的类型。

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>

调用程序集: Driver.Data.Module 程序集中的命名空间是: Driver.Data.Module 和类型名称是: DriverDataModule ,这也是.cs文件的名称。

我似乎无法找到如何在xml文件中正确指定名称。有人可以帮我使用完全限定的类型名称吗?

这适用于复合WPF应用程序。

感谢名单!

2 个答案:

答案 0 :(得分:17)

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

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

DriverDataModule module = new DriverDataModule();
string fullyQualifiedName = module.GetType().AssemblyQualifiedName;

答案 1 :(得分:0)

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

还值得在Reflector中打开程序集以仔细检查程序集的全名(打开Reflector时显示在窗口的左下角),并检查类型是否在您认为的命名空间中实际定义它是。