Splat: Locator.Current против Locator.CurrentMutable

Итак, Splat предоставляет два способа получения услуги:

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

В документации неясно, какой способ следует использовать.

Так в чем же разница между этими двумя? Какой из них мы должны использовать? Какой из них мы должны избегать?


person Dima    schedule 05.02.2019    source источник


Ответы (1)


Locator.Current — это версия только для чтения, ее следует использовать, если вы не регистрируете службы. Locator.CurrentMutable — это версия для чтения/записи, которую следует использовать только при регистрации служб.

Они оба указывают на одни и те же локаторы, просто исходя из вариантов использования, какую переменную вы используете.

В принципе:

  • использовать CurrentMutable для регистрации сервисов,
  • используйте Current всякий раз, когда вам нужно их получить.
person Glenn Watson    schedule 05.02.2019
comment
Тааак... Должен ли я использовать Locator.CurrentMutable только во время регистрации и Locator.Current в любое другое время? Это правильный подход? - person Dima; 05.02.2019