Unity3D/MSDN

BinaryFormatter 클래스

일등하이 2018. 9. 12. 14:54
반응형

BinaryFormatter 클래스

https://msdn.microsoft.com/ko-kr/library/system.runtime.serialization.formatters.binary.binaryformatter(v=vs.110).aspx


개체 또는 연결된 개체의 전체 그래프를 이진 형식으로 serialize 및 deserialize합니다.


Serialize 메서드 

지정된 된 데이터를 개체 또는 지정된 된 최상위 (루트)를 사용 하 여 개체의 그래프를 serialize합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
using System;
using System.IO;
using System.Collections;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
 
public class App 
{
    [STAThread]
    static void Main() 
    {
        Serialize();
        Deserialize();
    }
 
    static void Serialize() 
    {
        // Create a hashtable of values that will eventually be serialized.
        Hashtable addresses = new Hashtable();
        addresses.Add("Jeff""123 Main Street, Redmond, WA 98052");
        addresses.Add("Fred""987 Pine Road, Phila., PA 19116");
        addresses.Add("Mary""PO Box 112233, Palo Alto, CA 94301");
 
        // To serialize the hashtable and its key/value pairs,  
        // you must first open a stream for writing. 
        // In this case, use a file stream.
        FileStream fs = new FileStream("DataFile.dat", FileMode.Create);
 
        // Construct a BinaryFormatter and use it to serialize the data to the stream.
        BinaryFormatter formatter = new BinaryFormatter();
        try 
        {
            formatter.Serialize(fs, addresses);
        }
        catch (SerializationException e) 
        {
            Console.WriteLine("Failed to serialize. Reason: " + e.Message);
            throw;
        }
        finally 
        {
            fs.Close();
        }
    }
 
 
    static void Deserialize() 
    {
        // Declare the hashtable reference.
        Hashtable addresses  = null;
 
        // Open the file containing the data that you want to deserialize.
        FileStream fs = new FileStream("DataFile.dat", FileMode.Open);
        try 
        {
            BinaryFormatter formatter = new BinaryFormatter();
 
            // Deserialize the hashtable from the file and 
            // assign the reference to the local variable.
            addresses = (Hashtable) formatter.Deserialize(fs);
        }
        catch (SerializationException e) 
        {
            Console.WriteLine("Failed to deserialize. Reason: " + e.Message);
            throw;
        }
        finally 
        {
            fs.Close();
        }
 
        // To prove that the table deserialized correctly, 
        // display the key/value pairs.
        foreach (DictionaryEntry de in addresses) 
        {
            Console.WriteLine("{0} lives at {1}.", de.Key, de.Value);
        }
    }
}
cs


반응형