我正在給MVVMCross一個旋轉,看看它是否會用於一些更大的項目,而且非常棒。我喜歡導航,viewModel位置和一般的跨平臺方法,這正是我所需要的。但是,根據平臺的不同,我有點被分裂出一些依賴注入。MVVMCross中特定於平臺的IoC
所以,我們有基本的應用程序,具有共享移植庫,啓動時初始化的服務引用:
public TwitterSearchApp()
{
InitaliseServices();
}
private void InitaliseServices()
{
this.RegisterServiceInstance<ITwitterSearchProvider>(new TwitterSearchProvider());
}
精細。這定義了將在所有平臺上使用的服務實現。但是,在不同平臺上需要不同實現的情況又如何?例如,可能存儲/緩存,其核心要求是相同的,但需要在手機上而不是在平板電腦上處理。
我想這可能在安裝程序中去的地方:
public class Setup : MvxBaseWinRTSetup
{
public Setup(Frame rootFrame): base(rootFrame)
{
}
protected override MvxApplication CreateApp()
{
var app = new TwitterSearchApp();//set platorm specific IoC here maybe?
return app;
}
protected override void AddPluginsLoaders(Cirrious.MvvmCross.Platform.MvxLoaderPluginRegistry loaders)
{ // or perhaps here?
loaders.AddConventionalPlugin<Cirrious.MvvmCross.Plugins.Visibility.WinRT.Plugin>();
base.AddPluginsLoaders(loaders);
}
}
,但我不知道。我已經看到了替換ViewModel定位器的引用,但是是否有類似的方法來替換其他IoC服務?
感謝,對一般框架偉大的工作,我真的很喜歡它是如何工作的(除了這一點,我不明白正確尚)
託比
HMM ,也許是一個PlugIn然後:http:// stackoverflow。com/questions/12564272/making-mono-cross-platform-support-for-task-intent – TobyEvans