8

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

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 应用程序的。

谢谢!

4

2 回答 2

19

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

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

DriverDataModule module = new DriverDataModule();
string fullyQualifiedName = module.GetType().AssemblyQualifiedName;
于 2010-03-08T19:29:14.467 回答
0

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

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

于 2010-03-08T19:29:54.760 回答