分析学生做网站,网站评论源码,wordpress 优惠卷,google推广怎么做Bootstrapper类#xff0c;在Prism框架中的启动器类。它的职责是初始化并启动系统。在我所重构的计算器项目中#xff0c;它的工作就是完成Application项目中Program类里的Main方法的实现部分。既然Prism框架为了我们提供了一个这样的神器#xff0c;那我还何必要舍近求远的… Bootstrapper类在Prism框架中的启动器类。它的职责是初始化并启动系统。在我所重构的计算器项目中它的工作就是完成Application项目中Program类里的Main方法的实现部分。既然Prism框架为了我们提供了一个这样的神器那我还何必要舍近求远的自己实现呢? 今天这一章将是重构计算器部分的最后一章。之后我将继续深入的学习如何在Silverlight项目中应用Prism框架。 先看看Unity中的Bootstrapper类吧。在Unity中有一个继承致Bootstrapper类的抽象类它的类名叫 UnityBootstrapper。之前说过在Prism框架中有两种IOC框架Unity和MEF。在MEF中继承继Bootstrapper的类叫MEFBootstrapper。以后有机会再去好好的学一下也好做一个对比便于在今后的项目中选择。回到UnityBootstrapper上来这个类也是一个抽象类不能直接使用。不过它用起来还是比较简单和方便的。看看在这个项目中该如何使用 Main函数中原来的方法 1 static void Main(string[] args) 2 { 3 UnityContainer Container new UnityContainer(); 4 5 Container.RegisterInstanceIServiceLocator( 6 new UnityServiceLocatorAdapter(Container)); 7 8 Container.RegisterTypeIModuleInitializer, ModuleInitializer(); 9 10 ILoggerFacade logger new TextLogger();11 Container.RegisterInstanceILoggerFacade(logger);12 13 Container.RegisterTypeIModuleCatalog, ConfigurationModuleCatalog();14 15 Container.RegisterTypeIModuleManager, ModuleManager();16 17 IModuleManager Manager Container.ResolveIModuleManager();18 Manager.Run();19 } 上面的代码看起来有点杂。不过没有关系我们可以自己定义一个UnityBootstrapper类。把这些杂乱的事情交给它去完成。 下面的类定义在Application项目中如下 1 public class CalculatorUnityBootstrapper: UnityBootstrapper 2 { 3 protected override IModuleCatalog CreateModuleCatalog() 4 { 5 return (new ConfigurationModuleCatalog()); 6 } 7 8 protected override System.Windows.DependencyObject CreateShell() 9 {10 return null;11 }12 } 因为我的计算器是基于命令提示符的。所以不需要新建Shell。关于Shell的概念我将在后面详细说明。而重写CreateModuleCatalog方法是为了让UnityBootstrapper启动后使用ConfigurationModuleCatalog去读取配置文件中的信息并加载程序集。之后的章节中再深入研究。 启动器定义好了让我们看看它为我们省下了多少事吧。 上代码 1 static void Main(string[] args)2 {3 CalculatorUnityBootstrapper boot new CalculatorUnityBootstrapper();4 boot.Run();5 } 没有错就是这么简单不需要做其它任何的改动。在运行的时候甚至还可以看到调试信息。 今天的改动量比较小就不传代码了。计算器的重构到此就完了。在此以解决方案的程序集关系图和类关系图结束此部分。明天继续深入学习Prism框架在Silverlight中的应用。 程序集关系图 类的关系图