使用autofac注入asp.net web api模型

时间:2012-11-01 12:21:44

标签: c# asp.net dependency-injection asp.net-web-api autofac

我希望在处理请求之前使用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");
}

也许依赖解析器没有用于模型,或者我还缺少其他东西?

0 个答案:

没有答案