** System.Xml.Serialization.XmlSerializer 사용하기
- 객체를 XML로 직렬화 한다는 것은 풀어서 얘기하면 “객체의 현재 상태(Public Properties)를 XML문서로 변환하는 것“ 정도가 될 것 같습니다.
사실, Xml 형식으로 Serialize, Deserialize 한다는 것에 대한 의미는 개발자라면 거의 대부분 알고 계실텐데요.
막상 사용하려고 하면 딱히 떠오르는게 없습니다.
하지만, 좀더 생각해 보면 그 응용분야는 꽤 많을 것 입니다.
그 중 가장 손쉬운 예가 XmlWebService를 사용할때 서버에서 생성된 DataSet을 클라이언트로 전송하는 경우
내부적으로 DataSet이 Xml로 Serialize 되어 SOAP Protocol을 통해 전송 되게 되는 것입니다.
마찬가지로 원격에 있는 컨트롤을 그대로 다른 원격지 컴퓨터로 Xml Serializing하여 보내게 되면 그 상태가 그대로 유지될수도 있겠지요.
프로그램 환경설정을 저장하는 부분에서 사용해 봤습니다.
예를 들어 어떤 환경설정은 2가지 이상의 옵션이 꼭! 같이 있어야만 의미가 있는 경우가 있습니다.
이런 경우 환경설정을 저장하는 테이블에 각각의 옵션을 저장해 두었다가 다시 불러와서 조합해 낼수도 있을 겁니다.
하지만 이런 경우 어떤 한 넘이라도 문제가 발생한다면 그 옵션 자체가 의미가 없어집니다.
아래에 있는 그림은 FontDialog에서 선택한 정보를 Xml 직렬화하여 한꺼번에 저장하고 한꺼번에 가져오는 소스입니다.
XmlSerializer는 Public 프로퍼티와 Public 멤버만을 Xml로 직렬화 할 수 있습니다.
그 이유는 외부에서 봤을 때 객체의 상태만을 저장할 수 있기 때문에 사실 Private은 의미가 없습니다.
그럼에도 불구하고 Private 멤버를 저장해야 하는 경우에는 System.Runtime, Serialization.Formatters.Binary 네임스페이스의 BinaryFormatter를 참고하시면 됩니다.










Leave your greetings.
좋은 자료네요..담아갈께요..^^
2009/04/17 10:30 [ Permalink : Modify/Delete : Reply ]