1
カスタムModelBindersの依存関係注入を実装しようとしています。今のところ私は依存性注入を行うためにDefaultBinderを使用できますか?
protected void Application_Start()
{
// removed IoC configuration code
ModelBinders.Binders.DefaultBinder = new CastleWindsorModelBinder(this.container, ModelBinders.Binders.DefaultBinder);
// removed configuration code
}
public class CastleWindsorModelBinder : IModelBinder
{
private readonly IWindsorContainer container;
private readonly IModelBinder fallback;
public CastleWindsorModelBinder(IWindsorContainer container, IModelBinder fallback)
{
this.container = container;
this.fallback = fallback;
}
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
try
{
var binder = (IModelBinder)this.container.Resolve(
bindingContext.ModelType.FullName, typeof (IModelBinder));
return binder.BindModel(controllerContext, bindingContext);
}
catch (ComponentNotFoundException)
{
return fallback.BindModel(controllerContext, bindingContext);
}
}
}
ですが、全体的にパフォーマンスが低下するかどうかはわかりません。誰もがこのアプローチで自分の経験を共有できますか?