我设置了一个验证属性,我需要在其中访问数据库以完成验证。我尝试以与项目其他地方相同的方式设置属性注入,但它不起作用。我错过了什么步骤?
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 版本。
谢谢!