언어 자료구조 알고리즘/Escort C#

[C#] 12. 직렬화와 리플렉션 - 선별적 직렬화

언제나휴일 2016. 5. 16. 14:10
반응형

  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. 직렬화 및 리플렉션 - 직렬화

[C#] 12. 직렬화와 리플렉션 - 사용자 지정 직렬화

[C#] 12. 직렬화와 리플렉션 - 리플렉션

 

반응형