在 ASP.NET Web API 中重新启动服务

Reinitialize service in ASP.NET Web API

我在自托管 (OWIN) ASP.NET Web API:

中部署了我的服务
config.Services.Replace(typeof(IHttpControllerTypeResolver), new MyHttpControllerTypeResolver());

由于底层系统发生了一些变化,我想重新初始化服务(单例;MyHttpControllerTypeResolver 的实例)。这可能吗?

在不了解您的应用程序结构的情况下,我假设您发布的代码行位于一个名为 Configuration 的方法中,该方法属于一个名为 class 的 Startup(或类似), 某处某处正在呼叫 WebApp.Start<Startup>(...).

ConfigurationWebApp.Start 将查找和调用的 "magic" 方法名称。 WebApp.Start returns 一个 IDisposible。为了重新初始化,您需要在某个变量中捕获 IDisposible(我们称之为 app),调用 app.Dispose(),然后再次调用 WebApp.Start .