Splat:Locator.Current与Locator.CurrentMutable

时间:2019-02-05 08:11:32

标签: reactiveui splat

因此,Splat提供了两种检索服务的方法:

var s1 = Locator.Current.GetService<IMyService>();
var s2 = Locator.CurrentMutable.GetService<IMyService>();

Documentation不清楚我们应该使用哪种方式。

那么这两者之间有什么区别?我们应该使用哪一个?我们应该避免哪一个?

1 个答案:

答案 0 :(得分:1)

Locator.Current 是只读版本,除非正在注册服务,否则应使用。 Locator.CurrentMutable 是读/写版本,仅应在注册服务时使用。

它们都基于您使用的变量的用例指向相同的定位器。

基本上:

  • 使用CurrentMutable注册服务,
  • 在需要检索它们时使用Current。