Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我是否应该关心在ASP.NET控制器中处理静态实例?_C#_Asp.net_.net_Dispose - Fatal编程技术网

C# 我是否应该关心在ASP.NET控制器中处理静态实例?

C# 我是否应该关心在ASP.NET控制器中处理静态实例?,c#,asp.net,.net,dispose,C#,Asp.net,.net,Dispose,假设我有以下ASP.NET webapi控制器: [RoutePrefix("api/Foo")] public sealed class FooController : ApiController { private static readonly NativeFooService _nativeFooService = new NativeFooService(); // Controller actions } NativeFooService实现了IDisposabl

假设我有以下ASP.NET webapi控制器:

[RoutePrefix("api/Foo")]
public sealed class FooController : ApiController
{
    private static readonly NativeFooService _nativeFooService = new NativeFooService();

    // Controller actions
}
NativeFooService
实现了
IDisposable
,并且在构造函数中包含了一些繁重的初始化代码,所以我真的不想让它成为控制器的非静态成员,但同时我想调用它,确保它被正确释放,因为它正在包装一些本机组件


问题是,我是否应该关心使用类似的方法调用
NativeFooService
上的
Dispose
,还是应该将所有问题留给ASP.Net运行时?

这毫无意义。要么是静态的,要么不是。它怎么可能是静态的-保持活动状态,线程安全-然后需要定期处理?为什么不把它放在需要的地方。可能会有帮助。我同意@TomTom。我不知道NativeFooService初始化是如何实现的。我会想办法使这项任务更轻松、更快。如果不可能这样做,那么可以尝试在ASP.NET AppPool循环中处理实例化和处置?这样一来,用户就不会在AppPool在回收后第一次收到请求时体验到很长的加载时间。我想,
NativeFooService
上的终结器已经实现,并且正在以闪电般的速度工作以避免任何杀戮超时?相关主题: