我希望在处理请求之前使用IValidatableObject.Validate()
检查我的模型的某些方面。但是,由于_dalForValidation
下面的配置永远不会在Models.App
上设置,换句话说,始终会调用默认的空构造函数。
private static void ConfigureAutofac()
{
var builder = new ContainerBuilder();
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
builder.RegisterType<DataAccessFacade>().As<IDataAccess>().InstancePerApiRequest();
builder.RegisterType<Models.App>();
var container = builder.Build();
var resolver = new AutofacWebApiDependencyResolver(container);
GlobalConfiguration.Configuration.DependencyResolver = resolver;
}
App
有2个构造函数:
public App(IDataAccess dalForValidation)
{
_dalForValidation = dalForValidation;
}
public App() {}
为了完整性,我尝试访问它,得到一个空引用异常:
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var existingApps = _dalForValidation.FindApps().Convert<DB.App,App>();
if (!ValidateProxyMappings(existingApps))
yield return new ValidationResult("Invalid proxy mapping");
}
也许依赖解析器没有用于模型,或者我还缺少其他东西?