私はMVCプロジェクトのクロスカッティングの懸案事項を収容するために使用しているBaseControllerを持っています。asp.net mvc with ioc - > BaseControllerを使ってコンストラクタスープを避ける
public AccountController(ILocationService locationService, IAccountService accountService, IFormsAuthentication formsAuth, IMembershipService service, IUserService userService, ISiteConfiguration configuration)
: base(locationService,userService, configuration)
私は:
public BaseController (IUserService u, ITenantDetailsService t, ISiteConfiguration c)
この副作用は、各派生コントローラのための私のコンストラクタは、パラメータで溢れているということです。
しかし、これは私のコントローラが3の依存関係を有することを意味しますコントローラを解決するためにIoC(Windsor)を使用しているので、コンストラクタの依存関係を削除し、パブリックプロパティを自動配線することができます。
依存関係のいくつかをマスキングする以外にこれをしない理由はありますか?
public AccountController (IAccountService, IFormsAuthentication, IMembershipService)
このアプローチは読みやすく、特定のコントローラに関連する依存関係を明確に示しています。
また、私はそれがすべて間違っているし、BaseControllerは十字切り取りサービスを格納する正しい場所ではありません。
感謝しています。
おかげで、私は考えることができる クリス
私はあなたのアプローチがかなり好きです。一つの依存関係を持つことは、魔法が起こっていないことを明確にしています。 – Chris