我在处理如何处理webApi的多个电话时遇到问题。
我的webApi的控制器使用的是com对象,该对象需要连接到数据库并且一次仅允许一个连接。
假设我有2个控制器:
-客户
-发票
如果同时调用“客户”和“发票”,则第一个操作将失败。
是否可以让多个Controller等待任务结束?还是有其他解决方案?
创建一个简单的存储库模式来解决您的问题。存储库是一种特殊的存储库,Facade
它隐藏数据库访问和返回域模型的实现细节
例:
public class DataObjectRepository: IDataObjectRepository {
private static readonly object x = new object();
public DataObject GetObject() {
lock (x)
{
// Your code accessing the COM object
}
}
}
然后将其作为单例注入
services.AddSingleton<IDataObjectRepository, DataObjectRepository>();
DataObject
用任何域名模型名称替换。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句