Если я попытаюсь определить внедрение зависимостей таким образом, я получу исключение: р>
Код: Выделить всё
services.AddTransient();
Однако я могу зарегистрировать приемники в конструкторе модели представления следующим образом:
Код: Выделить всё
WeakReferenceMessenger.Default.Register(this);
Поэтому я предполагаю, что когда модель представления отправляет сообщение, все получатели будут получить сообщение. Но что произойдет, если сообщение должен получить только один получатель? Сначала мне нужно проверить, является ли отправитель ожидаемым отправителем.
Например, у меня есть два изолированных модуля:
Код: Выделить всё
public class MainViewModel1
{
ViewModelA _viewModelA;
ViewModelB _viewModelB;
public MainViewModel1(ViewModelA paramViewModelA, ViewmodelB paramViewModelB)
{
_viewModelA = paramViewModelA;
_viewModelB = paramViewModelB;
WeakReferenceMessenger.Default.Register(this);
}
}
public class MainViewModel2
{
ViewModelA _viewModelA;
ViewModelB _viewModelC;
public MainViewModel2(ViewModelA paramViewModelA, ViewmodelC paramViewModelC)
{
_viewModelA = paramViewModelA;
_viewModelC = paramViewModelC;
WeakReferenceMessenger.Default.Register(this);
}
}
Если у меня есть общий мессенджер для всего приложения, как бы я мог справиться с этим делом?
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/766 ... -singleton
Мобильная версия