はじめに を読んでください。それはあなたを始めるはずです。
まず、探しているのはcontainer
. ContainerBuilder
この単純な WinForms アプリのようなものからビルドします。
static void Main()
{
using (var container = builder.Build())
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var mainForm = container.Resolve<MainForm>();
Application.Run(mainForm)
}
}
一般的な考え方は、最初または最上位のインスタンスのみを解決する必要があるということです。コンテナーは、コンストラクター パラメーターを介した依存関係の挿入に基づいて、他のすべてのインスタンスの作成を処理します。
アプリケーション全体で DI パターンに従っていれば、起動時に一度だけコンテナに触れる必要があります。
最上位のインスタンスを解決する方法は、構築しているアプリケーションのタイプによって大きく異なります。Web アプリの場合は、ASP.Net 統合とMVC 統合によって処理されます。(結局のところ、ASP.Net の最上位のインスタンスはApplication
、制御できないものです)。
一方、コンソール アプリまたは WinForms アプリの場合はMain
、上記のサンプルのように で最初のインスタンスを手動で解決します。