码迷,mamicode.com
首页 > 其他好文 > 详细

Prism 5 + MEF中的ModuleCatalog.CreateFromXaml问题

时间:2015-02-16 11:25:02      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

        protected override IModuleCatalog CreateModuleCatalog()
        {
            return Microsoft.Practices.Prism.Modularity.ModuleCatalog.CreateFromXaml(new Uri("ModuleCatalog.xaml", UriKind.Relative));
        }

.net的背景,就不说了。用这个代码作为开头吧。在Bootstrapper载入部件时需要用到。

ModuleCatalog有很多种方法可以导入,总得来说就是灵活的。但偏偏这种看上去比较酷一点的(没有MyApp.exe.config文件,也不写死在cs代码里),却怎么也调试不出来。报的错误有这几种:

There is currently no moduleTypeLoader in the ModuleManager that can retrieve the specified module

{"“\f”(十六进制值 0x0C)是无效的字符  

The IModuleCatalog is required and cannot be null in order to initialize the modules.  

问题主要出在:

1. Xaml文件中定义的ModuleName与ExportModule的名称不符

2. Xaml文件的编译方式选择不正确

3. 忘了

我项目中通过的几个相关代码和设置如下,环境vs2013,Prism 5 + MEF,wpf。

MuduleCatalog.xaml:

<Modularity:ModuleCatalog xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                          xmlns:Modularity="clr-namespace:Microsoft.Practices.Prism.Modularity;assembly=Microsoft.Practices.Prism.Composition">
    <Modularity:ModuleInfo Ref="file://XianFeng.Client.Modules.Notify.dll"
                           ModuleName="NotifyModule"
                           InitializationMode="WhenAvailable"
                           ModuleType="XianFeng.Client.Modules.Notify.NotifyModule, XianFeng.Client.Modules.Notify" />
</Modularity:ModuleCatalog>

相应的,xxxNotify.dll中的输出文件NotifyModule.cs:

namespace XianFeng.Client.Modules.Notify
{
    [ModuleExport("NotifyModule", typeof(NotifyModule))]
    public class NotifyModule : IModule
    {
        [Import]
        public IRegionManager regionManager;

        public void Initialize()
        {
            this.regionManager.RegisterViewWithRegion(RegionNames.NotifyRegion, typeof(Views.Notify));
        }
    }
}

ModuleCatalog.xaml文件的属性:

技术分享

生成操作是Resource是我自己摸出来的,bing到的一些资料上说的都是老版本的吧,都不对,包括那个Mike Taulty的视频的也不对。

 

就是这样。

Prism 5 + MEF中的ModuleCatalog.CreateFromXaml问题

标签:

原文地址:http://www.cnblogs.com/dfun/p/4293808.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!