如何解决具有COM对象的ASP.NET CORE WEB API
我在如何处理对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
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。