Asp.NET 核心网络 API 带有 COM 对象
Asp.NET CORE WEB API with a COM OBJECT
我在处理对 webApi 的多次调用时遇到问题。
我的 webApi 的控制器正在使用一个需要连接到数据库的 com 对象,并且一次只允许一个连接。
假设我有 2 个控制器:
-客户
-发票
如果同时调用“Clients”和“Invoices”,第一个操作将失败。
是否可以让多个Controller等待任务结束?
或者还有其他解决方案吗?
创建一个简单的存储库模式来解决您的问题。存储库是一种特殊的 Facade
,它隐藏了您的数据库访问和 return 域模型
的实现细节
示例:
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
替换为任何域模型名称。
我在处理对 webApi 的多次调用时遇到问题。
我的 webApi 的控制器正在使用一个需要连接到数据库的 com 对象,并且一次只允许一个连接。
假设我有 2 个控制器:
-客户
-发票
如果同时调用“Clients”和“Invoices”,第一个操作将失败。
是否可以让多个Controller等待任务结束? 或者还有其他解决方案吗?
创建一个简单的存储库模式来解决您的问题。存储库是一种特殊的 Facade
,它隐藏了您的数据库访问和 return 域模型
示例:
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
替换为任何域模型名称。