Csharp/C Sharp/Generics/Generic Objects
Версия от 15:31, 26 мая 2010; (обсуждение)
Serialize and Deserialize generic objects
using System;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
public class Starter {
public static void Main(string[] args) {
BinaryFormatter binary = new BinaryFormatter();
FileStream file = new FileStream("data.bin", FileMode.OpenOrCreate);
MyClass<int> obj = new MyClass<int>(5);
binary.Serialize(file, obj);
MyClass<int> obj1 = (MyClass<int>)
binary.Deserialize(file);
Console.WriteLine(obj1.GetValue());
}
}
[Serializable]
public class MyClass<T> {
public MyClass(T init) {
fielda = init;
}
public void GetObjectData(SerializationInfo info,StreamingContext ctx) {
info.AddValue("fielda", fielda, typeof(T));
}
private MyClass(SerializationInfo info,StreamingContext ctx) {
fielda = (T)info.GetValue("fielda", typeof(T));
}
public void SetValue(T data) {
fielda = data;
}
public T GetValue() {
return fielda;
}
private T fielda = default(T);
}