【问题标题】:Reinitialize service in ASP.NET Web API在 ASP.NET Web API 中重新初始化服务
【发布时间】:2015-03-10 15:56:18
【问题描述】:
我在自托管 (OWIN) ASP.NET Web API 中部署了我的服务:
config.Services.Replace(typeof(IHttpControllerTypeResolver), new MyHttpControllerTypeResolver());
由于底层系统发生了一些变化,我想重新初始化服务(单例;MyHttpControllerTypeResolver 的实例)。这可能吗?
【问题讨论】:
标签:
c#
asp.net
asp.net-web-api
owin
【解决方案1】:
在不了解您的应用程序的结构的情况下,我假设您发布的代码行位于一个名为 Configuration 的方法中,该方法属于一个名为 Startup(或类似)的类,并且某个地方正在调用 @987654323 @。
Configuration 是一种“神奇”的方法名称,WebApp.Start 将寻找并调用它。 WebApp.Start 返回一个 IDisposible。为了重新初始化事物,您需要在某个变量中捕获IDisposible(我们称之为app),调用app.Dispose(),然后再次调用WebApp.Start。