我需要解析一个程序集并在运行时键入,我需要找到完全限定的类型名称。出于某种原因,我无法做到正确,因为我一直得到一个例外,说它无法找到指定的类型。
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应用程序。
感谢名单!
答案 0 :(得分:17)
尝试Driver.Data.Module.DriverDataModule, Driver.Data.Module
。
您还可以通过实例化该类型的对象并检查其类型的AssemblyQualifiedName属性来查找类型的完整程序集限定名称:
DriverDataModule module = new DriverDataModule();
string fullyQualifiedName = module.GetType().AssemblyQualifiedName;
答案 1 :(得分:0)
你得到什么错误?如果您很难从应用程序中获取完整的错误消息,并且您认为您的应用程序在加载程序集本身时遇到问题,则可以使用fuslogvw
工具将完整详细信息记录到磁盘。
还值得在Reflector中打开程序集以仔细检查程序集的全名(打开Reflector时显示在窗口的左下角),并检查类型是否在您认为的命名空间中实际定义它是。