Pass a parameter to OWIN host

爱⌒轻易说出口 提交于 2019-12-04 02:29:45

The WebApplication.Start method has an overload that accepts a IServiceProvider as parameter, so it is possible to inject the data I want.

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

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

Now, on my Startup class I only need to create a constructor that receives the IMyInterface:

public Startup(IMyInterface myInstance)
{
    ...
}

You can use the WebApp.Start Method (String, Action<IAppBuilder>) overload.

Example:

using (WebApplication.Start(url, appBuilder => new Startup(myObject).Configuration(appBuilder)))
{
    Console.WriteLine("Running...");
    Console.ReadLine();
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!