2009-07-31 3 views
2

아래의 간단한 클래스는 HashSet에서 상속되므로 비표준 방식으로 ISerialization 멤버를 구현해야합니다. System.Reflection.TargetInvocationException : 헷 doel 반 EEN의 aanroep의 heeft een과 UtilitiesTests.GroupTest.SerializeTest 가 예외를 던진 이 SerializationException은 나에게 설명해주십시오

시험 방법 : 다음 직렬화 그룹의 인스턴스를 역 직렬화 할 때 다음과 같은 예외를 얻을 설치를 기다리는 중. ---> System.Runtime.Serialization.SerializationException : 뚜껑 nameprop는

불행하게도이 네덜란드어에 .. NIET gevonden입니다. 이것은 "nameprop"멤버를 찾을 수 없다는 것을 의미합니다! 무엇이 잘못 되었나요 ?? 당신은 그것을 그림자 - 당신이 부모의 메소드를 오버라이드 (override)하지 않기 때문에

using System; 
using System.Collections.Generic; 
using System.Runtime.Serialization; 

namespace Grouping 
{ 
    [Serializable] 
    public class Group<T> : HashSet<T> 
    { 
     public Group(string name) 
     { 
      Name = name; 
     } 

     protected Group(){} 

     protected Group(SerializationInfo info, StreamingContext context):base(info,context) 
     { 
      Name = info.GetString("nameprop"); 
     } 

     protected new void GetObjectData(SerializationInfo info,StreamingContext context) 
     { 
      base.GetObjectData(info,context); 
      info.AddValue("nameprop", Name); 
     } 

     public string Name { get; private set; } 
    } 
} 
+0

오류를 표시해야하는 경우 http://lifeelement.com에서이 메모를 확인하십시오. SerializationException 멤버를 찾을 수 없습니다.
http://lifeelement.com/news/serializationexception-member-was-not-found/. –

답변

6

귀하의 GetObjectData 방법은, 직렬화시에 호출되지 않습니다. new 대신 override을 사용해야합니다.

+0

고마워요! 그게 다야 ... 나 같은 다른 단순한 문자로이 질문을 쉽게 찾을 수 있도록 영어 오류 메시지를 가르쳐 주시겠습니까? – Dabblernl

+0

실제로 코드를 실행하지 않았기 때문에 나는 단지 그것을 보았습니다. :) –

관련 문제