我使用OWIN自承載ASP.NET Web API和SignalR。我使用此代碼啓動服務器(在控制檯應用程序):將參數傳遞給OWIN主機
using (WebApplication.Start<Startup>(url))
{
Console.WriteLine("Running...");
Console.ReadLine();
}
這工作得很好。但是現在我需要將一個參數(一個對象)傳遞給Startup
類。如何才能做到這一點?
我使用OWIN自承載ASP.NET Web API和SignalR。我使用此代碼啓動服務器(在控制檯應用程序):將參數傳遞給OWIN主機
using (WebApplication.Start<Startup>(url))
{
Console.WriteLine("Running...");
Console.ReadLine();
}
這工作得很好。但是現在我需要將一個參數(一個對象)傳遞給Startup
類。如何才能做到這一點?
WebApplication.Start
方法有一個過載,接受IServiceProvider
作爲參數,所以可以注入我想要的數據。
IServiceProvider serviceProvider = DefaultServices.Create(defaultServiceProvider =>
{
defaultServiceProvider.AddInstance<IMyInterface>(myInstance);
});
using (WebApplication.Start<Startup>(serviceProvider, url)){ ... }
現在,我Startup
類我只需要創建一個接收IMyInterface的一個構造函數:
public Startup(IMyInterface myInstance)
{
...
}
可以使用WebApp.Start Method (String, Action<IAppBuilder>)
overload。
例子:
using (WebApplication.Start(url, appBuilder => new Startup(myObject).Configuration(appBuilder)))
{
Console.WriteLine("Running...");
Console.ReadLine();
}
這似乎並不在Web API 2工作 – Steven 2016-05-05 21:12:22