Я в настоящее время создаю приложение с инструментами WPF и MVVM Light.Inject service в ViewModel с MVVM Light toolkit
У меня есть этот вид модели:
public class MainViewModel : ViewModelBase
{
// Instance of service which is used for sending email.
private IEmailService _emailService;
// Get/set instance of service which is used for sending email.
public IEmailService EmailService
{
get
{
return _emailService;
}
set
{
Set("EmailService", ref _emailService, value);
}
}
public MainViewModel()
{
_emailService = new ServiceLocator.Current.GetInstance<IEmailService>();
}
}
Email это служба, которая обрабатывает отправки/обработки сообщений. Когда пользователь взаимодействует с элементом на экране, вызывается служба электронной почты (это было зарегистрировано в ServiceLocator)
Интересно, правильно ли реализовано мое приложение с шаблоном проектирования MVVM. И есть ли какие-либо более эффективные способы ввода услуг в модель представления (текущий подход требует много времени, объявляя свойство инициализации)