次のコードを使用して、protobuf-net を使用して EventHandler でクラスをシリアル化しようとしています。
[ProtoContract]
class Thing
{
[ProtoMember(5, AsReference = true)]
public EventHandler _DoSomething;
public event EventHandler DoSomething
{
add { _DoSomething += value; }
remove { _DoSomething -= value; }
}
public void PerformSomething(object sender, EventArgs args)
{
}
}
[TestMethod]
public void SerializingAClassWithAnEvent_Deserializes()
{
var Guy1 = new Thing() {};
var Guy2 = new Thing() {};
Guy2.DoSomething += Guy1.PerformSomething;
Assert.IsNotNull(Guy2._DoSomething);
MemoryStream buffer = new MemoryStream();
Serializer.Serialize(buffer, Guy2);
MemoryStream afterStream = new MemoryStream(buffer.ToArray());
var outGuy = Serializer.Deserialize<Thing>(afterStream);
Assert.IsNotNull(outGuy._DoSomething);
}
このコードは正常にコンパイルおよび実行されますが、_DoSomething EventHandler がまだ null であるため、2 番目のアサーションは失敗します。私は何が欠けていますか?