私はAppInitialize()あなたが探している方法だと信じています。これを使用して、WAS がホストする WCF サービスでキャッスル ウィンザーを初期化する方法に関する記事を次に示します。
Castle Windsor および非 HTTP プロトコル WCF サービス
Application_Start()この記事の本質は、 WAS で呼び出されない which を使用する代わりに、次のとおりです。
protected void Application_Start(object sender, EventArgs e)
{
var container = new WindsorContainer("ioc.config");
DefaultServiceHostFactory.RegisterContainer(container.Kernel);
}
使用する:
public class InitialiseService
{
/// <summary>
/// Application initialisation method where we register our IOC container.
/// </summary>
public static void AppInitialize()
{
var container = new WindsorContainer("ioc.config");
DefaultServiceHostFactory.RegisterContainer(container.Kernel);
}
}
マットを引用するには:
私はホスト ファクトリをより詳細に見て、DefaultServiceHostFactory. ただし、はるかに簡単な解決策があるようです。それは、ほとんど文書化されていない AppInitialize メソッドを利用することです。クラス (任意のクラス) を作成し、それをApp_Codeプロジェクトの ASP.NET フォルダーに配置し、以下に定義するメソッド シグネチャを与えると、この小さな赤ちゃんは、必要なときに正確に起動されます。その後、そこで IoC コンテナを初期化できます。