Prism Sample 7 Module xaml
这一节使用xaml标记甚为不解。
本节注册module 的方式同directory一节很类似。在那一节中,用工厂方法创建一模块目录:
protected override IModuleCatalog CreateModuleCatalog() { return new DirectoryModuleCatalog() { ModulePath = @".\Modules" }; }
这里用了同一个方法,返回也相同,但是实现不同。
protected override IModuleCatalog CreateModuleCatalog() { return new XamlModuleCatalog(new Uri("/Modules;component/ModuleCatalog.xaml", UriKind.Relative)); }
这里也指定了目录,同时指定了一个用xaml写的配置文件,配置文件的内容也似曾相识:
<m:ModuleCatalog xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:m="clr-namespace:Prism.Modularity;assembly=Prism.Wpf"> <m:ModuleInfo ModuleName="ModuleAModule" ModuleType="ModuleA.ModuleAModule, ModuleA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> </m:ModuleCatalog>
这里面的参数我们在app.config中也用到过。
注意上面代码中/Modules不是模块输出目录,而是项目目录。