Caliburn 1.5.2 e Autofac 3.0.2를 사용하는 .NET 4.0, WPF 앱이 있습니다.명령 줄 인수로 컨테이너 구성 사용자 정의
명령 줄 인수를 사용하여 IoC 컨테이너의 빌드를 사용자 지정하려고합니다.
문제는 명령 줄 인수는 Appplication.OnStartup
(link)에서만 사용 가능하며이 문제는 Bootstrapper.Configure
이 이미 호출 된 경우에만 발생합니다.
나는이 응용 프로그램 (usb 장치 통신, 웹 서비스)에서 mocking 인스턴스로 바꿀 수있는 일부 서비스를 가지고 있기 때문에 그 이유를 설명하고 싶습니다. 이러한 서비스는 등록 직후에 초기화되므로 (Autofac's AutoActivation extension) 컨테이너에 등록 할 때 사용할 유형을 선택하는 가장 좋은 순간입니다.
나는 생각 해요 :
응용 프로그램의 메인 뷰 모델로 서비스의 초기화를 지연.
분할 컨테이너 구성 논리는 두 단계로 구성되며, 하나는
Bootstrapper.Configure
이고 다른 하나는Bootstrapper.OnStartup
입니다.
는 주요주의 사항이 그와 같습니다
- 뷰 모델은 단지 그들을 초기화 서비스에 따라 달라집니다.
- 컨테이너 구성을 두 부분으로 나누면 종속성 문제를 해결해야합니다.
- 컨테이너 구성을 한 곳에서만 사용하는 것이 더 좋을 것이라고 생각합니다.
또한 Main (string [] args)을 찾고 static 인스턴스에서 매개 변수를 캐싱하는 것에 대해 생각했지만 그 코드는 WPF 앱에서 자동 생성되며 간섭은 너무 극단적 인 것으로 보입니다.
누군가가 그 일을하는 더 좋은 방법을 알고 있는지 궁금합니다.
내 대답을 편집했습니다. 편집을 확인하십시오. –