2010-07-10 2 views
0

기본 클래스에서 파생 클래스를 만들고 기본 클래스 컬렉션에 파생 클래스 개체를 추가했습니다. 나중에 컬렉션 개체를 파생 클래스로 캐스팅하려고하면 throw됩니다. 오류 및 나는 내 재정의 메서드 및 속성을 얻을 수 없습니다. 어떻게이 주위 얻을 수 있습니다.? 내가 사용할 수있는 컬렉션 ANS desalinizing를 직렬화 한 후 기본 잉크 collection.So이다 inkcanvas.But WPF에서 스트로크 클래스를 재정의하려고액세스 기본 클래스 컬렉션에서 파생 된 클래스 속성

, 내가 추가 한 새 속성 accessible.Pls가

+0

C 컬렉션 요소가 작동해야합니다. 예제 코드가 실제로 도움이 될 것입니다. – Richard

+0

* 당신이 가지고있는 오류에 대해서도 도움이 될 것입니다. InvalidCastException을 추측 할 수는 있지만 잘못 된 이유에 따라 다른 수가 될 수 있습니다. –

답변

2

문제를 도움이되지 않습니다 StrokeCollection은메서드를 사용하여 Ink Serialization Format (ISF)이라는 효율적인 이진 형식으로 획 데이터를 직렬화하는 사용자 지정 TypeConverter을 구현한다는 것입니다. 스트로크를 ISF로 변환하면 모든 추가 데이터가 손실되므로 다시로드 할 때 하위 클래스가 아닌 Stroke 일반 오브젝트로 인스턴스화됩니다. 이것이 하위 클래스로 캐스팅 할 수없는 이유입니다.

  • 서브 클래스 StrokeCollection 및 수동 StrokeCollection (예 : 복사하여 직렬화 서브 클래스
  • 사용 TypeConverter
  • 을 무시 다른 직렬화 기술에 대한 새로운 TypeConverter을 구현 :

    옵션 중 일부

    이다. StrokesList<Stroke>에 입력하고이를 직렬화 함)
관련 문제