【发布时间】:2019-07-25 16:37:19
【问题描述】:
我正在尝试在 MVC 中使用我想从我的 IoC 容器中解析的自定义模型绑定器。我遇到的问题是我在添加 MVC 服务时无法访问我的容器,因为我的容器尚未构建(我需要在构建容器之前添加 MVC)。感觉就像鸡/蛋的问题,我确定我缺少一个简单的解决方案。
例子:
services.AddMvc().AddMvcOptions(options =>
{
options.ModelBinders.Add(serviceProvider.Resolve<CustomModelBinder>());
});
我的自定义模型绑定器如下所示:
public class CustomModelBinder : IModelBinder
{
private IServiceProvider serviceProvider;
public CustomModelBinder(IServiceProvider serviceProvider)
{
this.serviceProvider = serviceProvider;
}
public Task<ModelBindingResult> BindModelAsync(ModelBindingContext bindingContext)
{
var model = serviceProvider.GetService(bindingContext.ModelType);
bindingContext.Model = model;
var binder = new GenericModelBinder();
return binder.BindModelAsync(bindingContext);
}
}
【问题讨论】:
标签: c# asp.net-core dependency-injection autofac model-binding