Мне нужна помощь - я пытаюсь использовать пользовательский атрибут проверки в веб-проекте ASP.NET MVC, который должен выполнить вызов базы данных.
Виндзор успешно работает для контроллеров, и интерфейс IRepository вводится нормально. Проблема возникает, когда мне нужно вставить хранилище в класс атрибута.
Класс атрибута имеет следующий код:
public class ValidateUniqueUrlNodeAttribute : AbstractValidationAttribute
{
private readonly string message;
private readonly IArticleRepository articleRepository;
public ValidateUniqueUrlNodeAttribute(string message)
{
this.message = message;
}
public ValidateUniqueUrlNodeAttribute(string message, IArticleRepository articleRepository):this(message)
{
this.articleRepository = articleRepository;
}
public override IValidator Build()
{
var validator = new UniqueUrlNodeValidator(articleRepository) { ErrorMessage = message };
ConfigureValidatorMessage(validator);
return validator;
}
Моя проблема в том, что я не могу заставить Виндзор перехватывать конструкцию атрибута для передачи в IArticleRepository
Текущий код в моем файле global.asax выглядит следующим образом:
container = new WindsorContainer();
ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(Container));
container
.RegisterControllers(Assembly.GetExecutingAssembly())
.AddComponent<IArticleRepository, ArticleRepository>()
.AddComponent<ValidateUniqueUrlNodeAttribute>();
Любая помощь будет принята с благодарностью.