如何缓存COM对象,而不是为每个请求创建/处置它

本文关键字:请求 创建 缓存 何缓存 COM 对象 | 更新日期: 2023-09-27 18:08:46

我有一个使用COM object与数据交互的asp.net web-api2应用程序。我有一个Engine对象和它一起工作。这样的:

public class PVXEngine : IDisposable
{
    protected DispatchObject _pvxObject;
    public PVXEngine()
    {
       _pvxObject = new DispatchObject("ProvideX.Script");
    }
    public void Dispose()
    {
       _pvxObject.Dispose();
    }
}

我不想为每个请求重新创建这个对象。我怎么能存储我的PVXEngine在我的应用程序上下文中不重新创建它。(我猜它会在应用程序池回收时被处理掉。)

如果可能的话,请参考我的文档,我可以在应用程序池中读取缓存对象。

感谢您的宝贵时间。

如何缓存COM对象,而不是为每个请求创建/处置它

PVXEngine设置为类变量。假定对象是线程安全的。

 public class PVXEngine : IDisposable
 {
     static protected DispatchObject _pvxObject = new DispatchObject("ProvideX.Script");
 }

如果对象不是线程安全的,那么我建议使用c#对象池模式实现中指定的资源池