我正在尝试使用WPF和&amp ;;开发PRISM应用程序。统一。现在我到了必须在ShellView中加载模块的部分。我试图通过使用Type.GetType方法来实现这一点,但在调试之后它表示null。现在我似乎无法弄清楚出了什么问题。我唯一知道的是我的ModuleType可能不是程序集限定名。有人可以帮助我吗?
public partial class Shell : Window
{
private IModuleManager ModuleManager;
private IUnityContainer Container;
private IModuleCatalog ModuleCatalog;
public Shell(IModuleManager moduleManager, IUnityContainer container, IModuleCatalog moduleCatalog)
{
this.ModuleCatalog = moduleCatalog;
if (moduleManager == null) throw new ArgumentException("Modulemanager is null");
ModuleManager = moduleManager;
ModuleManager.Run();
Container = container;
foreach (var module in ModuleCatalog.Modules)
{
OpenMainView(module);
}
InitializeComponent();
}
private void OpenMainView(ModuleInfo module)
{
Type ModuleType = Type.GetType(module.ModuleType); //this returns null
}
答案 0 :(得分:1)
这可能是一个延伸,但是您是否使用IModuleExport Interface使用ModuleExportAttibute标记了模块?
[ModuleExport("TestModule", typeof(TestModule), InitializationMode = InitializationMode.OnDemand)]
public class MainMenuControlModule : IModule
编辑:最后一个问题不是没有告诉代码从磁盘加载模块。