내 모든 뷰 모델에 대한 추상 기본 클래스를 만들고 싶었지만 접근성 문제가있어이 오류를 탐색 할 수 없습니다. 여기에 내 코드의 예WinRT 클래스를 사용하여 공용 뷰 모델을 만드는 방법은 무엇입니까?
public ref class ViewModelBase {
...
}
public ref class OtherViewModel : ViewModelBase {
...
}
내가이 상태로 내 코드를 정의 할 때, 나는 다음과 같은 오류 얻을 :
오류 C4585 : 'MyNamespace에 :: ViewModelBase'을하십시오 WinRT '공공 심판 클래스를 '
오류 C3213 : 중 하나를 밀봉하거나 기존의 봉인 클래스 대신
하면,에서 파생되어야합니다, 나는이 오류를 얻을 ViewModelBase 비공개 기본 클래스'를 MyNamespa ce :: ViewModelBase '가'OtherViewModel '보다 액세스하기가 어렵습니다.
이것은 매우 간단해야합니다. 내가 도대체 뭘 잘못하고있는 겁니까?
설명해 주셔서 감사합니다. BindableBase 클래스가 새 프로젝트 템플릿 중 하나와 함께 제공되었으며 DependencyObject를 사용한다는 사실을 확인했습니다. 이 제한이 상당히 실망 스럽긴하지만 계속 진행하려면 충분히 이해하는 것이 좋습니다. –
예,이 제한 사항은 제품주기의 다소 늦은 시점에 나타 났으며 향후 출시를 위해 해당 기능 (일반 런타임 클래스 상속)을 유지하려는 Windows 런타임 팀의 요청에 따라 더 많은 활주로를 설계 할 때 일관된 이야기. 모든 언어 예측에는 이러한 제한이 있지만 런타임 반영을 통해 개인 클래스에 대한 데이터 바인딩을 지원할 수 있으므로 C#에서는 그다지 고통스럽지 않습니다. –
그건 내가 본 것 중 가장 최악의 디자인이다. 완전히 OO 패러다임을 파괴한다. –