【发布时间】:2009-06-12 10:29:04
【问题描述】:
我需要一些帮助 - 我正在尝试在需要进行数据库调用的 ASP.NET MVC Web 项目中使用自定义验证属性。
我已经成功地为控制器工作了 Windsor,并且 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;
}
我的问题是我似乎无法让 Windsor 拦截要传入 IArticleRepository 的属性构造
我的 global.asax 文件中的当前代码如下:
container = new WindsorContainer();
ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(Container));
container
.RegisterControllers(Assembly.GetExecutingAssembly())
.AddComponent<IArticleRepository, ArticleRepository>()
.AddComponent<ValidateUniqueUrlNodeAttribute>();
任何帮助将不胜感激。
【问题讨论】:
标签: c# asp.net-mvc castle-windsor