2011-02-17 7 views
1

MVVM 응용 프로그램에서 Autofac을 사용하는 예가 있습니까? MVVM 환경에서 객체의 수명 및 폐기를 어떻게 제어 할 것인지 잘 모르겠습니다.Autofac MVVM - 평생

평생을 만들고 그 아래에서 해결할 수 있다고 생각하지만 실제로는 IoC 패턴보다 서비스 로케이터 패턴과 더 비슷합니다.

답변

3

공용 예제가 없지만 Silverlight 응용 프로그램에서이 작업을 수행했습니다.

콘텐츠의 최상위 수준을 구성하는 데 Silverlight navigation framework을 사용했습니다. 프레임이 새 페이지를 탐색 할 때, 나는 내가 속성을 통해 페이지와 관련된 페이지의 루트 뷰 모델, 해결하는 평생 범위를 만든 :

[ViewModel(typeof(OrdersViewModel))] 
public class OrdersView : Page 

을 할 때 다른 페이지로 탐색 프레임, 나는 다음 스코어를 만들기 전에 평생 스코프를 처분했다.

열기 대화 상자에도 같은 패턴이 적용됩니다. 각 대화 상자는 자체 수명 범위와 뷰 모델을 갖습니다. 닫히면 평생 범위가 삭제됩니다.

이러한 경계를 따라 잘 떨어지지 않는 상황도 있습니다. 때로는 더 세분화가 필요하고 contextual scopes을 사용하여 수명 범위를 더 깊게 이해할 수 있습니다. 이러한 상황은 대개 일회용이며 일생 범위를 시작하기위한 접착제가 필요합니다.

units of work : 각 평생 범위 끝에 변경 사항을 적용하는 것이 좋습니다. 따라서 데이터 세트의 extent이 자연 수명 범위가됩니다.

+1

http://code.google.com/p/whitebox/에서 사용할 수있는 소스 코드는 탐색 단위를 사용하여 작업 단위 경계를 표시하는 것과 같습니다. 추가 노이즈가 많아서 아주 명확한 예제를 만들지는 못했지만 SessionViewModel과 ApplicationModule은 몇 가지 단서를 제공 할 수 있습니다. –

+0

폴 스토벨 (Paul Stovell)은 마젤란 (Magellan)과 함께 이것을 달성하기위한 몇 가지 초기 세부 사항을 게시했습니다. -이 시리즈에 더 많이 나올 것으로 기대됩니다 :) http://www.paulstovell.com/unit-of-work –

+0

도움이되는 답변에 감사드립니다. 이러한 옵션 중 일부를 살펴 보겠습니다. Whitebox는 멋지게 보입니다. IoC 프로파일 러가 매우 편리 할 것이라고 생각했습니다. – Mark