2012-09-23 60 views

回答

2

這是一種依賴注入模式; Unity框架(準確地說是UnityBootstrapper)正在設置regionManager。您可以在Prism download看到的代碼下Prism.UnityExtensions \ UnityBootstrapper.cs

在方法:

RegisterTypeIfMissing(typeof(IRegionManager), typeof(RegionManager), true); 

而在Run方法:

RegionManager.SetRegionManager(this.Shell, this.Container.Resolve<IRegionManager>()); 

你」我會注意到HelloWorldModule繼承IModule這是 Unity棱鏡interfac e其實施UnityBootstrapper注入班級。


如果你不熟悉依賴注入,這是它的經典模式;一個類通過它的構造函數請求任何外部依賴(IRegionViewRegistry),並且DI框架負責注入實際的實現。

+0

除非我理解不正確,否則以下「你會注意到HelloWorldModule繼承了IModule,它是處理的Unity接口允許依賴被注入到類中。」並不完全正確。作爲模塊加載過程的一部分,棱鏡使用Unity來解析實現IModule的類,但IModule是Prism的一部分,Unity對它沒有任何特別的依賴。 –

+0

@DamianSchenkelman你說得對,'IModule'是一個Prism接口,不是Unity。 'UnityBootstrapper'是連接'IModule'實現的類。 – McGarnagle