[英]Injecting a dependency into a custom ModelBinder
我現在正在開發一個ASP.net MVC項目,我想知道以下是否可行:我有一個自定義的ModelBinder類,它引用了一個服務(本質上是一個fetcher)作為依賴項。 我希望使用IoC容器(當前為Ninject)注入依賴項,但在方法鏈中似乎沒有任何地方可以插入一些內容,即從IoC容器中加載模型綁定器。
我的第一個想法是有一個通用的對象綁定器,然后嘗試從容器中檢索特定的ModelBinder,如果沒有找到則返回null,然后將其作為綁定器,例如:ModelBinders.Binders.Add(typeof(object) )的typeof(NinjectModelBinder));
但我不確定
我可以放棄復雜對象的解析直到Action方法,但是能夠提供復雜對象(基本上是從數據訪問層加載和構建)作為操作的參數會更清晰,更可取。
任何想法/幫助表示贊賞。
我認為你將不得不在模型綁定器中進行服務定位器調用,或者建立模型綁定器,或者兩者兼而有之。
ModelBinders.Binders.Add(typeof(Customer), Resolve<CustomerBinder>());
我個人在我的場景中使用setter注入類似於你的。 在查找之后,NInject調用此屬性注入。 它起作用並完成工作。
在你的模型綁定器中,你可以調用類似的東西
IMyFetcher db = DependencyResolver.Current.GetService<IMyFetcher>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.