我在我的LoggerService
中使用ViewModelBase
,它是在构造函数中注入的:
public abstract class ViewModelBase : INotifyPropertyChanged
{
private ILoggerService _loggerService;
public ViewModelBase(ILoggerService loggerService)
{
_loggerService = loggerService;
}
...
...
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
但是在继承自ViewModelOne
的{{1}}中,我需要使用此服务,我该怎么办?
ViewModelBase
中的_loggerService
并在ViewModelBase
中使用。ViewModelOne
。在您看来,哪种方法最好?或者......你会做什么?
答案 0 :(得分:2)
您不必两次注射insertBefore
。将ILoggerService
从_loggerService
更改为private
,如下所示:
protected
或者在supper类中声明一个private ILoggerService _loggerService;
,然后调用它来获取子类中的logger实例:
getLoggerService
请注意,其他类从protected ILoggerService getLoggerService() {
return _loggerService;
}
获取记录器服务没有任何意义,因此最好将ViewModelBase
声明为getLoggerService
。