我试图弄清楚整个Mvvm声明单例的方式,尤其是那些与IoC依赖关系相关的单例。在我的特定示例中,我有一个UserService,它需要一个IDatabase和一个IMvxMessenger作为IoC依赖。
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的工作以及它如何与解决其他依赖关系一起工作。我已经测试了上面的代码,它似乎没有工作,所以我知道我在这里缺少一些重要的东西。
对此的任何帮助将不胜感激,谢谢你提前!