MVC 3 に基づくソリューションを拡張中です。
基本的に、このソリューションは、MVC 3 プロジェクトと、ビジネス/データ アクセスを管理するためのいくつかのクラス ライブラリ プロジェクトで構成されます。
MEF を使用してアプリケーションをプラグインベースにしようとしています。たとえば、UserManager
dll プロジェクトにクラスがあり、次のようにプラグインを定義しています。
[ImportMany]public List<IUserHooks> Plugins {get; set;}
foreach (var plugin in Plugins)
{
Plugin.DoTheJob();
}
ご覧のとおり、クラスは MVC プロジェクトとコントローラーから分離されています。リストは私のUserManager
クラスで定義されています。
MEF も使用するのが最善の方法であることはわかってUserManager
います (おそらくコントローラーの ctor のように初期化しますpublic MainController(IUserManager UserManager)
)。
container
MEFオブジェクトをクラス ライブラリで使用できるようにするには、どのように定義すればよいですか。MEFも使ってMVCアプリケーションを作る必要はありますか?私は、MVC アプリケーションに最小限の変更が必要なアプローチを好みます。