저는 WPF 응용 프로그램을 작성했습니다. 지금까지 대부분의 ViewModel은 엄격하게 자체 코드에서 작동했습니다. 나는 최근에 기본 코드 "ApplicationViewModel
"을 만들어 공통 코드를이 클래스로 마이그레이션하기로 결정했습니다. 대부분의 경우이 작업은 정상적으로 작동하지만 문제가 발생했습니다.View Model Base 클래스의 인스턴스를 하나만 확보하려면 어떻게해야합니까?
내 상속하는 뷰 모델이이 기본 뷰 모델의 인스턴스를 생성하고있는 것처럼 보입니다. 결과적으로; ClassA의 메소드가 기본 클래스의 변수를 변경해야하는 경우 ClassB는 여전히 null과 동일한 변수 또는 이전 값이 있던 값을 등록합니다.
처음에 나는이 문제를 해결할 마이크로 소프트의 단결 컨테이너에public App()
{
Container.RegisterType<ApplicationViewModel>(new ContainerControlledLifetimeManager());
}
을 인스턴스를 등록 생각하지만 아무것도 변경되지 않습니다.
연구 후에 발견 된 확실한 대답은 클래스를 정적으로 바꾸는 것이었지만 그 경로를 시작하기 전에 다른 솔루션을 선호했습니다. 프로그램 기능이 너무 많으면 재 작업이 필요할 수 있습니다.
싱글 톤 인스턴스 속성이 기본 클래스 선언과 함께 작동하는지 확실하지 않습니다.
그래서 내 질문에 가정합니다 :이 ViewModel 기본 클래스의 동일한 인스턴스가 모든 내 ViewModels에서 사용되는 것을 어떻게 보장하겠습니까?
를 단일 인스턴스 공유가 불가능하며 그것은 심지어 의미가 없습니다. –
다른 각도입니다; 단일 기본 클래스 인스턴스의 사용 사례는 무엇입니까? –
클래스 구조의 개요를 게시하십시오. 약간의 C#은 설명보다 훨씬 명확합니다. 당신이 묘사하고있는 것은 그렇게 분명하지 않습니다. –