새 데스크톱 응용 프로그램을 시작 중이며 MVVM 및 WPF를 사용하여 빌드하고 싶습니다.
TDD도 사용할 계획입니다.
문제는 생산 코드에 의존성을 주입하기 위해 IoC 컨테이너를 어떻게 사용해야할지 모르겠다는 것입니다.
다음과 같은 클래스와 인터페이스가 있다고 가정합니다.
public interface IStorage
{
bool SaveFile(string content);
}
public class Storage : IStorage
{
public bool SaveFile(string content){
// Saves the file using StreamWriter
}
}
그리고 IStorage
종속성으로있는 다른 클래스가 있습니다.이 클래스가 ViewModel 또는 비즈니스 클래스라고 가정합니다.
public class SomeViewModel
{
private IStorage _storage;
public SomeViewModel(IStorage storage){
_storage = storage;
}
}
이를 통해 모의 등을 사용하여 제대로 작동하는지 확인하는 단위 테스트를 쉽게 작성할 수 있습니다.
문제는 실제 응용 프로그램에서 사용할 때입니다. IStorage
인터페이스에 대한 기본 구현을 연결하는 IoC 컨테이너가 있어야한다는 것을 알고 있지만 어떻게해야합니까?
예를 들어 다음 xaml이 있으면 어떻게 될까요?
<Window
... xmlns definitions ...
>
<Window.DataContext>
<local:SomeViewModel />
</Window.DataContext>
</Window>
이 경우 종속성을 주입하도록 WPF에 올바르게 '알려'하려면 어떻게해야합니까?
또한 SomeViewModel
C # 코드 의 인스턴스가 필요하다고 가정 하면 어떻게해야합니까?
나는 이것에서 완전히 길을 잃었다 고 느낍니다. 그것을 처리하는 가장 좋은 방법에 대한 예 또는 지침에 감사드립니다.
StructureMap에 익숙하지만 전문가는 아닙니다. 또한 더 나은 / 쉬운 / 기본 프레임 워크가 있으면 알려주세요.