Pass a parameter to OWIN host

前端 未结 2 872
遥遥无期
遥遥无期 2021-02-20 08:04

I\'m self-hosting ASP.NET Web API and SignalR using OWIN. I start the server (on a console app) with this code:

using (WebApplication.Start(url))
         


        
相关标签:
2条回答
  • 2021-02-20 08:37

    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)
    {
        ...
    }
    
    0 讨论(0)
  • 2021-02-20 08:46

    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();
    }
    
    0 讨论(0)
提交回复
热议问题