메시지의 콘텐츠는 일반적으로 애플리케이션에 편리한 형식이 아닌 XML 형식인 경우가 많습니다. 애플리케이션은 개체를 조작하고 속성을 가져오고 설정합니다. WCF(Windows Communication Foundation)는 데이터 계약을 사용하여 개체를 Message 애플리케이션에서 쉽게 처리할 수 있는 개체로 변환합니다. 이러한 프로세스를 직렬화 및 역직렬화라고 합니다. 이와 동일한 용어는 관련 없는 프로세스인 메시지 와이어 형식과 전송 계층에서 수행하는 직렬화 및 역직렬화를 설명하는 데 사용됩니다.
데이터 계약을 통해 수행할 수 없는 메시지와 개체 간에 특수 변환을 구현해야 하는 경우 사용자 지정 메시지 포맷터를 사용할 수 있습니다. 클라이언트 또는 서비스에서 특정 계약 작업의 실행 동작을 수정하거나 확장하여 이 작업을 수행합니다.
클라이언트의 사용자 지정 메시지 포맷터
이 인터페이스는 IClientMessageFormatter 메시지를 개체 및 개체로 클라이언트 애플리케이션의 메시지로 변환하는 것을 제어하는 데 사용되는 메서드를 정의합니다.
이 인터페이스를 구현해야 합니다. 먼저 DeserializeReply 메서드를 재정의하여 메시지를 역직렬화합니다. 이 메서드는 들어오는 메시지를 받은 후, 클라이언트 작업으로 전달되기 전에 호출됩니다.
다음으로, 개체를 직렬화하기 위한 SerializeRequest 메서드를 재정의합니다. 이 메서드는 보내는 메시지를 보내기 전에 호출됩니다.
사용자 지정 포맷터를 서비스 애플리케이션에 삽입하려면, 작업 동작을 사용하여 IClientMessageFormatter 개체를 Formatter 속성에 할당합니다. 동작에 대한 자세한 내용은 동작을 사용하여 런타임 구성 및 확장을 참조하세요.
서비스의 사용자 지정 메시지 포맷터
인터페이스는 IDispatchMessageFormatter 개체를 작업에 대한 매개 변수로 변환하고 매개 변수에서 서비스 애플리케이션의 개체로 변환 Message 하는 Message 메서드를 정의합니다.
이 인터페이스를 구현해야 합니다. 먼저 DeserializeReply 메서드를 재정의하여 메시지를 역직렬화합니다. 이 메서드는 들어오는 메시지를 받은 후, 클라이언트 작업으로 전달되기 전에 호출됩니다.
다음으로, 개체를 직렬화하기 위한 SerializeRequest 메서드를 재정의합니다. 이 메서드는 보내는 메시지를 보내기 전에 호출됩니다.
사용자 지정 포맷터를 서비스 애플리케이션에 삽입하려면, 작업 동작을 사용하여 IDispatchMessageFormatter 개체를 Formatter 속성에 할당합니다. 동작에 대한 자세한 내용은 동작을 사용하여 런타임 구성 및 확장을 참조하세요.
참고하십시오
- IClientMessageFormatter
- IDispatchMessageFormatter
- 동작 사용하여 런타임 구성 및 확장