1

我正在尝试使用 WPF 和 Unity 开发 PRISM 应用程序。现在我到了必须在我的 ShellView 中加载我的模块的部分。我尝试通过使用 Type.GetType 方法来完成此操作,但在调试后它显示为 null。现在我似乎无法弄清楚出了什么问题。我唯一知道的是我的 ModuleType 可能不是 Assembly Qualified 名称。有人可以帮我吗 ?

 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
    }
4

1 回答 1

1

这可能有点牵强,但是您是否使用ModuleExportAttibute使用IModuleExport 接口标记了您的模块?

[ModuleExport("TestModule", typeof(TestModule), InitializationMode = InitializationMode.OnDemand)]
public class MainMenuControlModule : IModule

编辑:最后的问题不是没有告诉代码从磁盘加载模块。

于 2013-07-28T18:32:09.707 回答