【发布时间】:2010-04-29 19:04:53
【问题描述】:
我设置了一个验证属性,我需要在其中访问数据库以完成验证。我尝试以与项目其他地方相同的方式设置属性注入,但它不起作用。我错过了哪一步?
public class ApplicationIDValidAttribute : ValidationAttribute
{
[Inject]
protected IRepository<MyType> MyRepo;
public override bool IsValid(object value)
{
if (value == null)
return true;
int id;
if (!Int32.TryParse(value.ToString(), out id))
return false;
// MyRepo is null here and is never injected
var obj= MyRepo.LoadById(id);
return (obj!= null);
}
另外需要指出的是,我设置了 Ninject 内核来注入非公共属性,所以我认为这不是问题所在。我正在使用 Ninject 2、MVC 2 和 Ninject.Web.MVC 的 MVC 2 版本。
谢谢!
【问题讨论】:
标签: asp.net-mvc-2 dependency-injection ninject-2