11

私はOWINを使用してASP.NETWebAPIとSignalRをセルフホスティングしています。次のコードでサーバーを(コンソールアプリで)起動します。

using (WebApplication.Start<Startup>(url))
{
    Console.WriteLine("Running...");
    Console.ReadLine();
}

これは正常に機能します。しかし今、私はパラメータ(オブジェクト)をStartupクラスに渡す必要があります。これはどのように行うことができますか?

4

2 に答える 2

10

メソッドにはas パラメーターWebApplication.Startを受け入れるオーバーロードがあるIServiceProviderため、必要なデータを挿入することができます。

IServiceProvider serviceProvider = DefaultServices.Create(defaultServiceProvider =>
{
    defaultServiceProvider.AddInstance<IMyInterface>(myInstance);
});

using (WebApplication.Start<Startup>(serviceProvider, url)){ ... }

さて、私のStartupクラスでは、IMyInterface を受け取るコンストラクターを作成するだけで済みます。

public Startup(IMyInterface myInstance)
{
    ...
}
于 2013-04-30T14:23:57.940 に答える