Prism学习---实现可插拔的模块.docx
《Prism学习---实现可插拔的模块.docx》由会员分享,可在线阅读,更多相关《Prism学习---实现可插拔的模块.docx(5页珍藏版)》请在优知文库上搜索。
1、Prism学习(3)-实现可插拔的模块上一章中,我运用Unity重构了解决方案。不过在Application工程中仍旧须要引用其他各个依懒项。很明显,这样做并不能实现计算器模块的可插拔。今日,将以此为目标,对该解决方案进行再次的重构。首先,在运用PriSm框架加载的程序集中分别添加一个类,并让这些类实现IMOdUIe接口。当PriSm框架加载某个程序集后,将首先在程序集中搜寻实现了该接口的类。之后将会调用该接口的InitialiZe方法。于是,我们可以在这个方法中实现程序集内部的初化始操作,或者执行某个动作。通过这种机制,可以实现程序集的完全解藕。详细的操作如下:1.在CaIcuIator1.
2、ibrary程序集中添加一个类:CalcuIatorModuIe,并让其实现IMOdUIe接口。代码如下:2publicclassCalculatorModuIeJModuIe34publicCalculatorModule(IUnityContaiercontainer)56this.cotainer=container;78voidIModuIeJnitiaIizeO910container.RegisterType<ICalculator,Calculator>();llcontainer.RegisterType<ICalculatorRepl1.oop,Calcul
3、atorRepl1.oop>();12)1314IUnityContainercontainer;152.在InputOutput1.ibrary程序集中添加一个类:InpulOIRPUtMOdUIe,并让其实现IMOdUle接口。代码如下:2publicclassInputoutputModuIeJModuIe34publiclnputOutputModule(IUnityContainercontainer)56this.contaier=container;78voidIModuIeJnitiaIizeO910container.RegisterType<lInputServ
4、ice,ConsolelnputService>();llcontainer.RegisterType<IOutputService,ConsoleOutputService>(OutputServicel);12container.RegisterType<IOutputService,MSgBoXoUtPUtSerViCe>(OUtPUtSerViCe2);131415IUnityContainercontainer;163.在CommandParser1.ibrary程序集中添加一个类:InputoutputModuIe,并让其实现IMOdUIe接口。代码如
5、下:2publicclassInputParsingModuIe:IModuIe34publiclnputParsingModle(IUityCotainercontainer)56this.cotainer=container;78voidIModuIeJnitiaIizeO910container.RegisterType<llnputParserService,lnputParserSen/ice>();ll1213IUnityContainercontainer;144.在解决方案中新建一个类库:MainModuIe1.ibraryl在其中添加一个类:MainModuIe1
6、并实现IModUIe接口。这个类库将会作为计算器模块的入口,在该类的Initialize方法中将会启动计算器。代码如下:2publicclassMainModuIe:IModuIe34publicMaiModle(IService1.ocatorService1.ocator)56this.service1.ocator=Service1.ocator;78voidIModuIeJnitiaIizeO910IcalculatorRepI1.ooploop=11service1.ocator.Getlnstance<ICalculatorRepl1.oop>();1213loop.R
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Prism 学习 实现 可插拔 模块