[c#] C# 직렬화 속성
C#에서 직렬화(Serialization)는 객체를 바이트 스트림으로 변환하여 파일에 저장하거나 네트워크를 통해 전송하는 프로세스를 말합니다. 이를 통해 데이터를 저장하고 전송하고 다시 복구하는 작업이 가능해집니다. C#에서는 Serializable
속성과 NonSerialized
속성을 사용하여 직렬화를 제어할 수 있습니다.
Serializable 속성
Serializable
속성은 클래스나 구조체를 직렬화할 수 있도록 지정하는 데 사용됩니다. 클래스나 구조체에 이 속성을 적용하면 해당 객체들은 직렬화되어 파일에 저장하거나 네트워크를 통해 전송할 수 있게 됩니다.
[Serializable]
public class MySerializableClass
{
// 직렬화될 멤버 변수들
}
NonSerialized 속성
NonSerialized
속성은 클래스의 특정 멤버 변수가 직렬화되지 않도록 지정하는 데 사용됩니다. 예를 들어, 암호나 임시 데이터 등을 보호하기 위해 직렬화를 제외하고 싶은 경우에 사용할 수 있습니다.
[Serializable]
public class MyClass
{
public int ID;
public string Name;
[NonSerialized]
public string Password;
}
C#에서는 직렬화된 데이터를 생성하고 읽어 들이는 다양한 메서드와 클래스를 제공합니다. BinaryFormatter
, XmlSerializer
, DataContractSerializer
등의 클래스를 사용하여 직렬화된 데이터를 다룰 수 있습니다.
직렬화된 데이터를 안전하게 저장하거나 전송할 때 빈번하게 사용되는 기술이므로, C#에서의 직렬화 속성을 제대로 활용하는 것은 중요합니다.
이 외에도 C#에서의 직렬화에 대한 자세한 내용은 MSDN의 Serialization 문서를 참고할 수 있습니다.