내 webApi에 대한 여러 호출을 처리하는 방법에 문제가 있습니다.
내 webApi의 컨트롤러는 데이터베이스에 연결하고 한 번에 하나의 연결 만 허용해야하는 com 개체를 사용하고 있습니다.
2 개의 컨트롤러가 있다고 가정 해 보겠습니다.
-클라이언트
-송장
"클라이언트"와 "인보이스"가 동시에 호출되면 첫 번째 작업이 실패합니다.
작업이 끝날 때까지 여러 컨트롤러가 대기하도록 할 수 있습니까? 아니면 다른 해결책이 있습니까?
문제를 해결하기 위해 간단한 저장소 패턴을 만듭니다. 저장소는 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] 삭제
몇 마디 만하겠습니다