2010-04-22 7 views
0

DI가 올바르게 작동하는지 이해하려고합니다. 저는 현재 윈저를 DI 컨테이너로 사용하고 있습니다. 직접 참조없이 코드에서 동적으로 서비스를로드하는 데이 메서드를 사용합니다. 하지만 행동을 바꾸고 DI를 사용하여 인스턴스 관리에 관해 더 알고 싶습니다.DI (Dependency Injection)를 사용한 인스턴스 관리

웹 응용 프로그램을 가지고 있는데 여기 PerCall을 instancemode로 사용하는 WCF 서비스가 있습니다. 이것은 새로운 인스턴스/호출을 의미합니다. 이 WCF에서 나는 DI를 통해로드 된 서비스를 호출하고이 서비스는 DI를 통해 다시로드 된 다른 서비스를 호출합니다. WCF는 appdomain의 새로운 인스턴스이지만 서비스는 어떻게됩니까? 그들은 또한 새로운 인스턴스입니까? 이 DI 컨테이너는 모든 WCF 인스턴스에서 공유되며이 컨테이너의 서비스는 단일 인스턴스입니까?

누구에게 문의 할 수 있습니까?

+0

당신이 이전 질문 –

+0

그 죄송합니다 일부 답변을 받아 들인다면 당신은 아마 더 유용한 답변을 얻을 수 있습니다하지만 당신은 내 이전 게시물을 보면, 당신은 내가 정답을받지 않았을 것을 볼 수 있습니다. 그리고 저는 여기에 많은 질문을 던졌습니다. 다른 게시물에 대한 답변을 홍보 할 수는 있지만 다른 게시물을 검토 할 시간은별로 없습니다. 미안하지만 의도적으로 이루어지지 않았습니다. – Sven

답변

1

설명이 너무 모호 할 때 대답하기가 어렵습니다. 그래도 몇 점 :

  • 구성 요소가 컨테이너를 "공유해서는 안됩니다." 구성 요소는 컨테이너를 참조하지 않아야합니다.

  • 전체 응용 프로그램마다 하나의 루트 컨테이너 인스턴스가 있어야합니다. webapp에서는 보통 ApplicationStart에서이를 인스턴스화하고 구성하고 거기에서 작업을 수행하게합니다.

  • 짧은 생활 구성 요소에 의존하지 않도록 조심하십시오. 예를 들어, 싱글 톤 구성 요소는 일시적인 구성 요소에 종속되지 않아야합니다.

+0

컨테이너에서 정확히 무엇이 발생 하는지를 배울 필요가있는 것처럼 보입니다. 현재 애플리케이션 시작시, 설정 파일에있는 내용을 기반으로 해당 컨테이너를 만듭니다. (서비스). 서비스가 필요할 때 생성자에게 전달합니다. 마술이 일어나면, 나는 그 서비스의 인스턴스를 얻는다. 하지만이 인스턴스는 얼마나 오래 살아 있습니까? MVC 컨트롤러에서 서비스를 사용하는 경우를 예로들 수 있습니다. 컨트롤러는 얼마나 오래 라이브 상태로 유지됩니까? 요청이 완료 될 때까지? – Sven

+0

라이프 스타일에 따라 다릅니다. 설명서와 사용 설명서를 살펴 보시지 않겠습니까? http://castleproject.org/container/documentation/v21/index.html –

관련 문제