В настоящее время, когда мне нужно внедрить зависимости в базовый класс, я использую следующий код:
public class BaseClass
{
readonly IService _service;
public BaseClass(IService service)
{
_service = service;
}
}
public class A : BaseClass
{
public A(IService service) : base(service)
{
}
}
public class B : BaseClass
{
public B(IService service) : base(service)
{
}
}
Я должен написать много повторяющегося кода во всех подклассах. Чтобы избежать дублирования кода, я думаю, что могу использовать CommonServiceLocator для внедрения зависимостей в базовый класс:
public class BaseClass
{
readonly IService _service;
public BaseClass()
{
_service = ServiceLocator.Current.GetInstance<IService>();
}
}
public class A : BaseClass
{
}
public class B : BaseClass
{
}
Это кажется намного проще, но я не уверен, что это хорошая практика.
Спасибо