2013-03-19 11 views
9

Jestem self-hosting ASP.NET Web API i SignalR za pomocą OWIN. Uruchamiam serwer (w aplikacji konsolowej) z następującym kodem:Przekaż parametr do hosta OWIN

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

To działa dobrze. Ale teraz muszę przekazać parametr (obiekt) do klasy Startup. Jak to zrobić?

Odpowiedz

9

Metoda WebApplication.Start ma przeciążenie, które jako parametr przyjmuje parametr IServiceProvider, więc możliwe jest wprowadzenie żądanych danych.

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

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

Teraz na moim Startup klasy I tylko trzeba utworzyć konstruktor, który odbiera IMyInterface:

public Startup(IMyInterface myInstance) 
{ 
    ... 
} 
+3

nie wydają się działać z Web API 2 – Steven

Powiązane problemy