我希望替換System.Web.Mvc.ActionMethodSelector
的實現,FindAction
方法使用ReflectedControllerDescriptor
,但希望利用現有實現,理想情況下是從ActionMethodSelector
派生。但是,因爲班級被標記爲內部,所以我可以看到「正確」這樣做的唯一方法是從ReflectedControllerDescriptor
派生出來,並通過從ActionMethodSelector
複製代碼實現FindAction
。但是,我希望避免這種情況,這是由於代碼的數量以及試圖使其與框架保持同步的潛在問題。ASP.NET MVC ActionMethodSelector依賴關係注入/替換
我正在考慮以下方法:
- 咬咬牙,複製代碼
- 使用反射,以便採取現有實現的優勢
是否還有其他的方法我錯過了,更好還是以其他方式?
你指的ActionMethodSelectorAttribute類? http://msdn.microsoft.com/en-us/library/system.web.mvc.actionmethodselectorattribute(v=vs.108).aspx –
@PaulTaylor不,內部類System.Web.Mvc.ActionMethodSelector:https ://github.com/ASP-NET-MVC/aspnetwebstack/blob/master/src/System.Web.Mvc/ActionMethodSelector.cs –