【发布时间】:2017-12-07 10:00:58
【问题描述】:
我正在尝试找出声明单例的整个 Mvvm 方式,尤其是那些与它们相关联的 IoC 依赖项。在我的特定示例中,我有一个需要 IDatabase 和 IMvxMessenger 作为 IoC 依赖项的 UserService。
IDatabase 是特定于平台的,所以在我的 Droid.UI 项目中,我使用以下代码解决了这个问题:
var database = new Database(new SQLitePlatformAndroid(), Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "database.db"));
database.Initialize();
Mvx.RegisterSingleton<IDatabase>(database);
在我的 .Core 项目中,我有以下代码:
var database = Mvx.Resolve<IDatabase>();
var messenger = Mvx.Resolve<IMvxMessenger>();
Mvx.RegisterSingleton<IUserService>(new UserService(database, messenger));
我正在努力解决这个问题。 Mvx.Resolve 的真正工作是什么以及它如何与解决其他依赖项一起工作。我已经测试了上面的代码,但它似乎没有工作,所以我知道我在这里遗漏了一些重要的东西。
对此的任何帮助将不胜感激,在此先感谢您!
【问题讨论】:
标签: xamarin inversion-of-control mvvmcross