У меня есть класс, который реализует интерфейс IValidatableObject
, чтобы проверить входящие данные, введенные пользователем.Проблема в том, что для проверки этих данных мне нужно использовать класс, который реализует шаблон хранилища данных, который находится в другой сборке.Примерно так:
public class SelectedFilteringCriteria : IValidatableObject
{
private IFiltersRepository _filtersRepository;
public SelectedFilteringCriteria(IFiltersRepository filtersRepository)
{
_filtersRepository = filtersRepository;
}
public int? SelectedValue { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var results = new List<ValidationResult>();
var valueOk = _filtersRepository.GetFilters().Any(
filter => filter.Value == SelectedValue
);
if (!valueOk)
{
results.Add(new ValidationResult("Not good :("));
}
return results;
}
}
Я использую контейнер зависимостей Ninject.Я хотел бы знать, есть ли способ сказать MVC ввести класс репозитория в IValidatableObject
, когда он будет создан.