12.1.1 선별적 직렬화
C#에서는 형식 내부의 멤버 필드 중에서 직렬화와 역직렬화에 포함하지 않게 선별적 직렬화를 제공합니다. 선별적 직렬화는 멤버 필드에만 적용할 수 있는데 직렬화 대상에서 빼고 싶은 멤버 위에 NonSerialized 어튜리뷰트를 지정합니다.
예를 들어 사용자가 로그인하여 게임을 진행할 때 공부한 시간이 5이면 아이큐를 증가한다고 가정합시다. 만약 사용자가 로그아웃하면 공부한 시간은 사라지고 다시 로그인 하면 다시 0부터 시작하게 합시다. 직렬화와 역직렬화를 이용한다면 공부한 시간을 직렬화 대상에서 배제합니다.
[Serializable]
class Unit
{
[NonSerialized]
int scnt;//공부한 횟수
internal string Name
{
get;
private set;
}
internal int IQ
{
get;
private set;
}
internal Unit(string name)
{
Name = name;
IQ = 0;
}
internal void Study()
{
scnt++;
if (scnt == 5)
{
IQ++;
scnt = 0;
}
}
public override string ToString()
{
return string.Format("이름:{0} 아이큐:{1} 공부한 시간:{2}", Name, IQ, scnt);
}
}
관련 게시물
[C#] 12. 직렬화와 리플렉션 - 사용자 지정 직렬화
'언어 자료구조 알고리즘 > Escort C#' 카테고리의 다른 글
[C#] 12. 직렬화와 리플렉션 - 리플렉션 (0) | 2016.05.16 |
---|---|
[C#] 12. 직렬화와 리플렉션 - 사용자 지정 직렬화 (0) | 2016.05.16 |
[C#] 12. 직렬화 및 리플렉션 - 직렬화 (0) | 2016.05.16 |
[C#] 11. 예외 처리 - 파생 관계의 예외 잡기 (0) | 2016.05.16 |
[C#] 11. 예외 처리 - 예외 클래스 (0) | 2016.05.16 |
[C#] 11. 예외 처리 - 예외처리 구문 (0) | 2016.05.16 |
[C#] 10. .NET 어셈블리 - 모듈 작성 (0) | 2016.05.03 |
[C#] 10. .NET 어셈블리 - XML 문서 파일 (0) | 2016.05.03 |
[C#] 10. .NET 어셈블리 - 공용 어셈블리 (0) | 2016.05.03 |
[C#] 10. .NET 어셈블리 - 전용 어셈블리 (0) | 2016.05.03 |