이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

SerializableAttribute 클래스

 

게시 날짜: 2016년 11월

클래스를 직렬화할 수 있다는 것을 나타냅니다. 이 클래스는 상속될 수 없습니다.

네임스페이스:   System
어셈블리:  mscorlib(mscorlib.dll에 있음)

System.Object
  System.Attribute
    System.SerializableAttribute

[AttributeUsageAttribute(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Delegate, 
	Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class SerializableAttribute : Attribute

이름설명
System_CAPS_pubmethodSerializableAttribute()

SerializableAttribute 클래스의 새 인스턴스를 초기화합니다.

이름설명
System_CAPS_pubpropertyTypeId

파생 클래스에서 구현될 때 이 Attribute의 고유 식별자를 가져옵니다.(Attribute에서 상속됨)

이름설명
System_CAPS_pubmethodEquals(Object)

이 API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. @FSHO2@이 인스턴스가 지정한 개체와 같은지를 나타내는 값을 반환합니다.(Attribute에서 상속됨)

System_CAPS_pubmethodGetHashCode()

이 인스턴스의 해시 코드를 반환합니다.(Attribute에서 상속됨)

System_CAPS_pubmethodGetType()

현재 인스턴스의 Type을 가져옵니다.(Object에서 상속됨)

System_CAPS_pubmethodIsDefaultAttribute()

파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다.(Attribute에서 상속됨)

System_CAPS_pubmethodMatch(Object)

파생된 클래스에서 재정의 되 면이 인스턴스가 지정한 개체와 같은지 여부를 나타내는 값을 반환 합니다.(Attribute에서 상속됨)

System_CAPS_pubmethodToString()

현재 개체를 나타내는 문자열을 반환합니다.(Object에서 상속됨)

이름설명
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.(Attribute에서 상속됨)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.(Attribute에서 상속됨)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1).(Attribute에서 상속됨)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다.(Attribute에서 상속됨)

적용 된 SerializableAttribute 특성을이 형식의 인스턴스를 serialize 할 수를 나타내는 형식입니다. 공용 언어 런타임에서 throw SerializationException 그래프에서 serialize 되는 개체의 모든 형식에 없는 경우는 SerializableAttribute 특성을 적용 합니다.

적용 된 SerializableAttribute 클래스도 구현 하는 경우에 특성는 ISerializable serialization 프로세스를 제어 하는 인터페이스입니다.

적용 하는 경우는 SerializableAttribute 특성을 형식으로 모든 개인 및 공용 필드는 기본적으로 serialize 됩니다. 구현 하 여 serialization을 세부적으로 제어할 수는 ISerializable serialization 프로세스를 재정의 하는 인터페이스입니다.

Serialization에서 필드를 제외 하면 적용 하 여 또는 NonSerializedAttribute 특성을 필드입니다. 직렬화 가능 형식의 필드는 포인터, 핸들, 또는 다른 환경에서 의미 있게 재구성 될 수 없습니다와 특정 환경에 관련 된 몇 가지 기타 데이터 구조를 포함 하는 경우 적용 해야 할 수는 NonSerializedAttribute 특성을 해당 필드입니다.

특성 사용에 대한 자세한 내용은 특성을 사용하여 메타데이터 확장을 참조하십시오. serialization에 대한 자세한 내용은 System.Runtime.Serialization을 참조하세요.

다음 예제에서는로 표시 된 개체의 serialization은 SerializableAttribute 특성입니다. 사용 하 여 BinaryFormatter 대신는 SoapFormatter, 적절 한 줄의 주석도 제거 합니다.

using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Soap;
//using System.Runtime.Serialization.Formatters.Binary;

public class Test {
   public static void Main()  {

      //Creates a new TestSimpleObject object.
      TestSimpleObject obj = new TestSimpleObject();

      Console.WriteLine("Before serialization the object contains: ");
      obj.Print();

      //Opens a file and serializes the object into it in binary format.
      Stream stream = File.Open("data.xml", FileMode.Create);
      SoapFormatter formatter = new SoapFormatter();

      //BinaryFormatter formatter = new BinaryFormatter();

      formatter.Serialize(stream, obj);
      stream.Close();

      //Empties obj.
      obj = null;

      //Opens file "data.xml" and deserializes the object from it.
      stream = File.Open("data.xml", FileMode.Open);
      formatter = new SoapFormatter();

      //formatter = new BinaryFormatter();

      obj = (TestSimpleObject)formatter.Deserialize(stream);
      stream.Close();

      Console.WriteLine("");
      Console.WriteLine("After deserialization the object contains: ");
      obj.Print();
   }
}


// A test object that needs to be serialized.
[Serializable()]		
public class TestSimpleObject  {

    public int member1;
    public string member2;
    public string member3;
    public double member4;

    // A field that is not serialized.
    [NonSerialized()] public string member5; 

    public TestSimpleObject() {

        member1 = 11;
        member2 = "hello";
        member3 = "hello";
        member4 = 3.14159265;
        member5 = "hello world!";
    }


    public void Print() {

        Console.WriteLine("member1 = '{0}'", member1);
        Console.WriteLine("member2 = '{0}'", member2);
        Console.WriteLine("member3 = '{0}'", member3);
        Console.WriteLine("member4 = '{0}'", member4);
        Console.WriteLine("member5 = '{0}'", member5);
    }
}

.NET Framework
1.1 이후 사용 가능

이 형식의 모든 public static(Visual Basic의 공유 Visual Basic의 경우) 멤버는 스레드로부터 안전합니다. 인스턴스 멤버는 스레드로부터의 안전이 보장되지 않습니다.

맨 위로 이동
표시: