>백엔드 개발 >C++ >Ninject 및 DbContext: 적절한 폐기 보장 및 인스턴스 생성 최적화?

Ninject 및 DbContext: 적절한 폐기 보장 및 인스턴스 생성 최적화?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-26 21:36:09978검색

Ninject and DbContext: Ensuring Proper Disposal and Optimizing Instance Creation?

Ninject 사용 시 명심해야 할 사항

Ninject를 MVC 애플리케이션에 통합하고 DbContext를 컨트롤러의 생성자에 도입하기 위해 취한 최근 단계를 보면 자연스럽게 특정 질문이 생깁니다. 발생:

Ninject는 내 DbContext의 정리 및 시기적절한 폐기를 보장합니까?

이 응답에 설명된 대로:

CLR 문서에 따라 Disposable 개체의 작성자는 Dispose를 호출할 책임이 있으며, 이 경우 Ninject입니다. 따라서 Dispose에 대한 명시적인 호출은 권장되지 않습니다.

Ninject는 GC가 연결된 범위 개체를 수집하자마자 InTransientScope() 이외의 범위 내에서 일회용 개체를 삭제합니다. 따라서 모든 일회용 개체는 InTransientScope()가 아닌 범위를 사용하여 바인딩되어야 합니다.

각 컨트롤러에 DbContext 인수를 포함해야 하는 요구 사항을 제거하는 것이 가능합니까?

MVC 컨트롤러에 공유 기본 클래스를 사용하지 마세요. 클래스 상속은 긴밀한 결합을 촉진하고 유지 관리를 방해합니다. 또한 각 컨트롤러에 대한 추가 종속성을 필요로 하는 "신 개체"를 생성하는 경향이 있습니다.

또는 전역적으로 등록된 필터를 활용하여 교차 문제를 처리하는 것을 고려해 보세요. 공유 기본 클래스에 의해 위반되는 단일 책임 원칙을 준수하여 고유한 논리적 구성 요소에 대한 특정 필터를 디자인할 수 있습니다. 전역적으로 등록하면 생성자 주입을 사용하고 컨트롤러 및/또는 작업 수준에서 조건부 적용을 위한 속성(동작 없이)을 생성할 수도 있습니다.

DbContext 인스턴스 생성을 어떻게 최적화할 수 있나요?

통찰력을 얻으려면 다음 질문을 참조하세요. [웹 요청당 하나의 DbContext... 왜?](https://stackoverflow.com/questions/9155198/one-dbcontext-per-web-request-why)

위 내용은 Ninject 및 DbContext: 적절한 폐기 보장 및 인스턴스 생성 최적화?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.