내보내기(0) 인쇄
모두 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

SerializationInfo 클래스

개체의 serialization 또는 deserialization에 필요한 데이터를 모두 저장합니다. 이 클래스는 상속될 수 없습니다.

System.Object
  System.Runtime.Serialization.SerializationInfo

네임스페이스:  System.Runtime.Serialization
어셈블리:  mscorlib(mscorlib.dll)

[ComVisibleAttribute(true)]
public sealed class SerializationInfo

SerializationInfo 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드SerializationInfo(Type, IFormatterConverter) SerializationInfo 클래스의 새 인스턴스를 만듭니다.
Public 메서드SerializationInfo(Type, IFormatterConverter, Boolean) SerializationInfo 클래스의 새 인스턴스를 초기화합니다.
위쪽

  이름설명
Public 속성AssemblyNameserialize할 형식의 어셈블리 이름을 가져오거나 설정합니다. 이 속성은 serialize할 때만 사용할 수 있습니다.
Public 속성FullTypeNameserialize할 Type의 전체 이름을 가져오거나 설정합니다.
Public 속성IsAssemblyNameSetExplicit어셈블리 이름이 명시적으로 설정되었는지 여부를 가져옵니다.
Public 속성IsFullTypeNameSetExplicit전체 형식 이름이 명시적으로 설정되었는지 여부를 나타내는 값을 가져옵니다.
Public 속성MemberCount SerializationInfo 저장소에 추가된 멤버의 개수를 가져옵니다.
Public 속성ObjectTypeserialize할 개체의 형식을 반환합니다.
위쪽

  이름설명
Public 메서드AddValue(String, Boolean) SerializationInfo 저장소에 부울 값을 추가합니다.
Public 메서드AddValue(String, Byte) SerializationInfo 저장소에 부호 없는 8비트 정수 값을 추가합니다.
Public 메서드AddValue(String, Char) SerializationInfo 저장소에 유니코드 문자 값을 추가합니다.
Public 메서드AddValue(String, DateTime) SerializationInfo 저장소에 DateTime 값을 추가합니다.
Public 메서드AddValue(String, Decimal) SerializationInfo 저장소에 10진수 값을 추가합니다.
Public 메서드AddValue(String, Double) SerializationInfo 저장소에 배정밀도 부동 소수점 값을 추가합니다.
Public 메서드AddValue(String, Int16) SerializationInfo 저장소에 부호 있는 16비트 정수 값을 추가합니다.
Public 메서드AddValue(String, Int32) SerializationInfo 저장소에 부호 있는 32비트 정수 값을 추가합니다.
Public 메서드AddValue(String, Int64) SerializationInfo 저장소에 부호 있는 64비트 정수 값을 추가합니다.
Public 메서드AddValue(String, Object) SerializationInfo 저장소에 지정된 개체를 추가합니다. 여기서 해당 개체는 지정된 이름과 연결됩니다.
Public 메서드AddValue(String, SByte) SerializationInfo 저장소에 부호 있는 8비트 정수 값을 추가합니다.
Public 메서드AddValue(String, Single) SerializationInfo 저장소에 단정밀도 부동 소수점 값을 추가합니다.
Public 메서드AddValue(String, UInt16) SerializationInfo 저장소에 부호 없는 16비트 정수 값을 추가합니다.
Public 메서드AddValue(String, UInt32) SerializationInfo 저장소에 부호 없는 32비트 정수 값을 추가합니다.
Public 메서드AddValue(String, UInt64) SerializationInfo 저장소에 부호 없는 64비트 정수 값을 추가합니다.
Public 메서드AddValue(String, Object, Type) SerializationInfo 저장소에 값을 추가합니다. 여기서 valuename과 연결되고 Typetype으로 serialize됩니다.
Public 메서드Equals(Object) 지정한 개체가 현재 개체와 같은지 여부를 확인합니다. (Object에서 상속됨)
Public 메서드GetBoolean SerializationInfo 저장소에서 부울 값을 검색합니다.
Public 메서드GetByte SerializationInfo 저장소에서 부호 없는 8비트 정수 값을 검색합니다.
Public 메서드GetChar SerializationInfo 저장소에서 유니코드 문자 값을 검색합니다.
Public 메서드GetDateTime SerializationInfo 저장소에서 DateTime 값을 검색합니다.
Public 메서드GetDecimal SerializationInfo 저장소에서 10진수 값을 검색합니다.
Public 메서드GetDouble SerializationInfo 저장소에서 배정밀도 부동 소수점 값을 검색합니다.
Public 메서드GetEnumerator SerializationInfo 저장소에 있는 이름-값 쌍을 반복하는 데 사용되는 SerializationInfoEnumerator를 반환합니다.
Public 메서드GetHashCode기본 해시 함수로 작동합니다. (Object에서 상속됨)
Public 메서드GetInt16 SerializationInfo 저장소에서 부호 있는 16비트 정수 값을 검색합니다.
Public 메서드GetInt32 SerializationInfo 저장소에서 부호 있는 32비트 정수 값을 검색합니다.
Public 메서드GetInt64 SerializationInfo 저장소에서 부호 있는 64비트 정수 값을 검색합니다.
Public 메서드GetSByte SerializationInfo 저장소에서 부호 있는 8비트 정수 값을 검색합니다.
Public 메서드GetSingle SerializationInfo 저장소에서 단정밀도 부동 소수점 값을 검색합니다.
Public 메서드GetString SerializationInfo 저장소에서 String 값을 검색합니다.
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드GetUInt16 SerializationInfo 저장소에서 부호 없는 16비트 정수 값을 검색합니다.
Public 메서드GetUInt32 SerializationInfo 저장소에서 부호 없는 32비트 정수 값을 검색합니다.
Public 메서드GetUInt64 SerializationInfo 저장소에서 부호 없는 64비트 정수 값을 검색합니다.
Public 메서드GetValue SerializationInfo 저장소에서 값을 검색합니다.
Public 메서드SetTypeserialize할 개체의 Type을 설정합니다.
Public 메서드ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
위쪽

이 클래스는 사용자 지정 serialization 동작에서 개체에 의해 사용됩니다. ISerializable 또는 ISerializationSurrogate에 대한 GetObjectData 메서드는 serialize할 각 정보의 이름, 형식 및 값으로 SerializationInfo 저장소를 채웁니다. deserialization 도중에 적절한 함수를 사용하여 이 정보를 추출할 수 있습니다.

개체는 AddValue 메서드를 사용하여 serialization 도중에 SerializationInfo 저장소에 추가되며, GetValue 메서드를 사용하여 deserialization 도중에 SerializationInfo 저장소에서 추출됩니다.

사용자 지정 serialization에 대한 자세한 내용은 사용자 지정 Serialization을 참조하십시오.

다음 코드 예제는 다양한 값에 대한 사용자 지정 serialization 및 deserialization의 SerializationInfo에 대해 설명합니다.


using System;
using System.Text;
using System.IO;
// Add references to Soap and Binary formatters.
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization.Formatters.Soap ;
using System.Runtime.Serialization;


[Serializable]
public class MyItemType : ISerializable
{
    public MyItemType()
    {
        // Empty constructor required to compile.
    }

    // The value to serialize.
    private string myProperty_value;

    public string MyProperty
    {
        get { return myProperty_value; }
        set { myProperty_value = value; }
    }

    // Implement this method to serialize data. The method is called 
    // on serialization.
    public void GetObjectData(SerializationInfo info, StreamingContext context)
    {
        // Use the AddValue method to specify serialized values.
        info.AddValue("props", myProperty_value, typeof(string));

    }

    // The special constructor is used to deserialize values.
    public MyItemType(SerializationInfo info, StreamingContext context)
    {
        // Reset the property value using the GetValue method.
        myProperty_value = (string) info.GetValue("props", typeof(string));
    }
}

// This is a console application. 
public static class Test
{
    static void Main()
    {
        // This is the name of the file holding the data. You can use any file extension you like.
        string fileName = "dataStuff.myData";

        // Use a BinaryFormatter or SoapFormatter.
        IFormatter formatter = new BinaryFormatter();
        //IFormatter formatter = new SoapFormatter();

        Test.SerializeItem(fileName, formatter); // Serialize an instance of the class.
        Test.DeserializeItem(fileName, formatter); // Deserialize the instance.
        Console.WriteLine("Done");
        Console.ReadLine();
    }

    public static void SerializeItem(string fileName, IFormatter formatter)
    {
        // Create an instance of the type and serialize it.
        MyItemType t = new MyItemType();
        t.MyProperty = "Hello World";

        FileStream s = new FileStream(fileName , FileMode.Create);
        formatter.Serialize(s, t);            
        s.Close();
    }


    public static void DeserializeItem(string fileName, IFormatter formatter)
    {
        FileStream s = new FileStream(fileName, FileMode.Open);
        MyItemType t = (MyItemType)formatter.Deserialize(s);
        Console.WriteLine(t.MyProperty);            
    }       
}


.NET Framework

4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

커뮤니티 추가 항목

추가
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft