Csharp/C Sharp/Generics/Generic Objects — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
м (1 версия)
 
(нет различий)

Текущая версия на 11:45, 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);
}