Я пытаюсь реализовать DI в классе, но я не уверен, что мой дизайн подходит.
Соответствующий код в классе, к которому я хочу добавить DI к
class DoerValidation
{
public DoerValidation()
{
compileData();
}
private void compileData()
{
doersActive = Doer.GetActiveDoers();
//...
}
}
А в моем Doer
классе
public partial class Doer
{
private static readonly DoerRepository repository = new DoerRepository();
public static IEnumerable<Doer> GetActiveDoers()
{
return repository.Doers.Where(c => c.Person.IsActive);
}
}
Я просто не понимаю, как я мог реализовать DI в этой ситуации. Может быть, метод GetActiveDoers
плохой дизайн? Где бы вы поместили этот метод в противном случае?
Будет ли хорошей практикой начинать добавлять новые методы непосредственно в хранилище? Некоторые люди говорили мне, что он должен оставаться чистым, поэтому он реализует только это
public interface IDoerRepository
{
IQueryable<Doer> Doers { get; }
void SaveDoer(Doer doer);
void DeleteDoer(Doer doer);
}