处置 HttpConfiguration 是否安全?
Is it safe to dispose HttpConfiguration?
我的 CA2000 分析器(“在丢失范围之前处理对象”)告诉我在完成自定义 OWin 的 IAppBuilder
.[=16= 后处理 HttpConfiguration
实例]
我尝试这样做,一切都运行良好。 MSDN 没有说明我应该或不应该处理 HttpConfiguration
,就像它所做的那样,比如说,任务(“不要打扰处理任务实例”)。
因为我不想让一个实例处于未处理状态,就像我不想发现我的网络服务器有一天崩溃一样,我应该怎么做?
编辑我的部分代码:
public void Configuration(IAppBuilder appBuilder)
{
EnableCookieAuth(appBuilder);
UseWebApi(appBuilder);
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "CA2000:Dispose objects before losing scope", Justification = "Handled by ")]
private static void UseWebApi(IAppBuilder appBuilder)
{
appBuilder.Use<ControlMiddleware>();
using HttpConfiguration config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
appBuilder.UseNinjectWebApi(config);
config.EnsureInitialized();
}
在owin app中配置httpConfiguration
有意义的地方,在OnAppDisposing
HttpConfiguration httpConfiguration = new HttpConfiguration();
app.UseWebApi(httpConfiguration);
AppProperties properties = new AppProperties(app.Properties);
CancellationToken token = properties.OnAppDisposing;
if (token != CancellationToken.None)
{
token.Register(() =>
{
httpConfiguration.Dispose();
});
}
我的 CA2000 分析器(“在丢失范围之前处理对象”)告诉我在完成自定义 OWin 的 IAppBuilder
.[=16= 后处理 HttpConfiguration
实例]
我尝试这样做,一切都运行良好。 MSDN 没有说明我应该或不应该处理 HttpConfiguration
,就像它所做的那样,比如说,任务(“不要打扰处理任务实例”)。
因为我不想让一个实例处于未处理状态,就像我不想发现我的网络服务器有一天崩溃一样,我应该怎么做?
编辑我的部分代码:
public void Configuration(IAppBuilder appBuilder)
{
EnableCookieAuth(appBuilder);
UseWebApi(appBuilder);
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "CA2000:Dispose objects before losing scope", Justification = "Handled by ")]
private static void UseWebApi(IAppBuilder appBuilder)
{
appBuilder.Use<ControlMiddleware>();
using HttpConfiguration config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
appBuilder.UseNinjectWebApi(config);
config.EnsureInitialized();
}
在owin app中配置httpConfiguration
有意义的地方,在OnAppDisposing
HttpConfiguration httpConfiguration = new HttpConfiguration();
app.UseWebApi(httpConfiguration);
AppProperties properties = new AppProperties(app.Properties);
CancellationToken token = properties.OnAppDisposing;
if (token != CancellationToken.None)
{
token.Register(() =>
{
httpConfiguration.Dispose();
});
}