因此,Splat 提供了两种检索服务的方法:
var s1 = Locator.Current.GetService<IMyService>();
var s2 = Locator.CurrentMutable.GetService<IMyService>();
文档不清楚我们应该使用哪种方式。
那么这两者之间有什么区别呢?我们应该使用哪一个?我们应该避免哪一个?
Locator.Current 是只读版本,除非您正在注册服务,否则应使用。Locator.CurrentMutable是读/写版本,只应在注册服务时使用。
它们都指向相同的定位器,只是基于您使用的变量的用例。
基本上:
- 使用 CurrentMutable 注册服务,
- 每当需要检索它们时,请使用当前。