Ich habe eine einfache Klasse, die als Serializable markiert ist, und es geschieht, ein Ereignis zu haben. Ich habe versucht, das Ereignis-Mitglied als NonSerialized zu markieren, aber der Compiler beschwert sich. Wenn ich jedoch die Klasseninstanz serialisieren möchte, löst der BinaryFormatter eine Ausnahme aus, dass das Ereignis nicht serialisierbar ist. Heißt das, dass man Klassen, die Ereignisse haben, nicht serialisieren kann? Wenn ja, dann sollte der Compiler dies von vornherein sagen.
Stream file = File.Open("f", FileMode.Open);
BinaryFormatter bf = new BinaryFormatter();
object obj = null;
try
{
obj = bf.Deserialize(file);
}
catch (System.Runtime.Serialization.SerializationException e)
{
MessageBox.Show("De-Serialization failed : {0}", e.Message);
}
file.Close();
System.Collections.ArrayList nodeList = obj as System.Collections.ArrayList;
foreach (TreeNode node in nodeList)
{
treeView.Nodes.Add(node);
}
Arbeitet nicht in der folgenden Klasse:
[Serializable()]
class Simple
{
private int myInt;
private string myString;
public event SomeOtherEventDefinedElsewhere TheEvent;
}