2014-06-14 5 views
2

내 뷰 생성자가 인수로 필요로하는 모든 종속성이 IoC 컨테이너에 등록되어 있으면 IoC를 사용하여 뷰를 직접 만들 수 있습니다.내 ViewFactory를 사용하기 위해 WPF 뷰 생성 메커니즘을 사용자 정의 할 수 있습니까?

그러나 DataTemplates를 광범위하게 사용하려고하면 WPF에서 내보기를 만듭니다. 그리고보기에 기본 생성자가 없으면 WPF가 실패하고 전체 응용 프로그램이 중단됩니다. 따라서 내 질문은 - 거기 WPF있는 모든 확장 성 지점 그래서 기본 생성자가없는 경우에도 내보기를 만들 수있는보기 팩토리를 제공 할 수 있습니다?

+0

어떤 종류의 IoC 컨테이너를 사용하고 있습니까? 나는 그것을 위해 프리즘을 제안한다. – pushpraj

+0

프리즘을 사용하고 있지만, 알고있는 한 IoC 컨테이너가 아닙니다. 그리고 IoC로서 나는 Autofac을 사용합니다. 앞에서 말했듯이 WPF에 자체 확장 (IoC 기반) 뷰 팩토리를 제공 할 수 있도록 WPF 확장 점에 대해 알아야합니다. – DarkDeny

+0

프리즘 라이브러리에는 Unity를 ioc 컨테이너로 사용하는 데 필요한 기능을 구현하는 UnityBootstrapper가 포함되어 있습니다. 유형을 해석하기 위해 자신의 공장을 작성하는데도 같은 것을 사용할 수 있습니다. – pushpraj

답변

0

불행히도, 그리고 내 지식에 대한 대답은 아니오입니다. 난 그냥 똑같은 것을 찾고 있었지만 WPF는 매개 변수없는 생성자로 사용자 컨트롤을 만들 수 있습니다.

하나의 솔루션은 Service Locator 패턴을 사용하는 것입니다. Service Locator 패턴은 UserControl이 해당 생성자의 컨테이너에 액세스 할 수 있고 자체적으로 종속성을 해결합니다. 나는 개인적으로이 패턴을 좋아하지 않는다. 일부는 Service Locator에 안티 패턴을 부르고, 결국에는 문제를 일으킬 수 있습니다.

+0

동의합니다. 게시 한 이후로 아무 것도 발견하지 못했습니다. – DarkDeny