반응형
네트워크를 통해서 클래스를 직렬화 역직렬화 하는 방법으로 다음과 같은 방법을 사용했습니다.
서버
클라이언트
하지만 위와 같은 방법으로 클래스를 직렬화 해서 역직렬화 했을 때
클라이언트쪽에서 다음과 같은 오류가 발생했습니다.
이 오류는 역직렬화 할때 클라이언트 쪽에서는 참조하는 어셈블리가 없기 때문에 클래스를 역직렬화 할 수가 없는 오류입니다. 같은 클래스를 정의해도 클라이언트 쪽에서는 어떤 클래스인지 인식할 수 없습니다. 오류를 해결하는 방법으로 DLL을 만들어서 어셈블리를 참조하는 방법으로 오류를 해결할 수도 있지만, 여기서는 Xml을 직렬화 한 후 역직렬화 하는 방식으로 설명드리겠습니다.
다음은 XmlSerializer 클래스를 이용한 클래스 직렬화 역직렬화를 방식입니다. NetworkStream에 List<Data>를 직렬화 한 후 클라이언트 쪽에서 역직렬화를 하면 됩니다.
클래스의 변수는 반드시 public으로 지정해야 변수에 있는 값이 전달이 됩니다. 또한 직렬화하려는 클래스는 매개변수가 없는 생성자를 가지고 있어야 합니다.
서버
클라이언트
반응형
댓글