2009-07-31 17 views
2

以下の単純なクラスは、HashSetから継承していますので、(標準ではない方法で)ISerializationメンバーを実装する必要があります。 System.Reflection.TargetInvocationException: ヘットdoelヴァンEENのaanroepのheeftのEEN UtilitiesTests.GroupTest.SerializeTest が例外をスローした このSerializationExceptionを私に説明してください

試験方法:私はその後、シリアライズグループのインスタンスをデシリアライズしようとすると、私は次の例外を取得しますuitzondering veroorzaakt。 ---> System.Runtime.Serialization.SerializationException: 蓋namepropがnietのgevonden ..です

は、残念ながら、これはオランダ語です。メンバー "nameprop"が見つかりませんでした! 何が問題なのですか?あなたはそれを影 - あなたは親のメソッドをオーバーライドしていないため

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

私は実際にコードを実行していないので、私は知らないだけでそれを見た:) –

関連する問題