다음을 통해 공유


사용자 지정 메시지 포맷터

메시지의 콘텐츠는 일반적으로 애플리케이션에 편리한 형식이 아닌 XML 형식인 경우가 많습니다. 애플리케이션은 개체를 조작하고 속성을 가져오고 설정합니다. WCF(Windows Communication Foundation)는 데이터 계약을 사용하여 개체를 Message 애플리케이션에서 쉽게 처리할 수 있는 개체로 변환합니다. 이러한 프로세스를 직렬화 및 역직렬화라고 합니다. 이와 동일한 용어는 관련 없는 프로세스인 메시지 와이어 형식과 전송 계층에서 수행하는 직렬화 및 역직렬화를 설명하는 데 사용됩니다.

데이터 계약을 통해 수행할 수 없는 메시지와 개체 간에 특수 변환을 구현해야 하는 경우 사용자 지정 메시지 포맷터를 사용할 수 있습니다. 클라이언트 또는 서비스에서 특정 계약 작업의 실행 동작을 수정하거나 확장하여 이 작업을 수행합니다.

클라이언트의 사용자 지정 메시지 포맷터

이 인터페이스는 IClientMessageFormatter 메시지를 개체 및 개체로 클라이언트 애플리케이션의 메시지로 변환하는 것을 제어하는 데 사용되는 메서드를 정의합니다.

이 인터페이스를 구현해야 합니다. 먼저 DeserializeReply 메서드를 재정의하여 메시지를 역직렬화합니다. 이 메서드는 들어오는 메시지를 받은 후, 클라이언트 작업으로 전달되기 전에 호출됩니다.

다음으로, 개체를 직렬화하기 위한 SerializeRequest 메서드를 재정의합니다. 이 메서드는 보내는 메시지를 보내기 전에 호출됩니다.

사용자 지정 포맷터를 서비스 애플리케이션에 삽입하려면, 작업 동작을 사용하여 IClientMessageFormatter 개체를 Formatter 속성에 할당합니다. 동작에 대한 자세한 내용은 동작을 사용하여 런타임 구성 및 확장을 참조하세요.

서비스의 사용자 지정 메시지 포맷터

인터페이스는 IDispatchMessageFormatter 개체를 작업에 대한 매개 변수로 변환하고 매개 변수에서 서비스 애플리케이션의 개체로 변환 Message 하는 Message 메서드를 정의합니다.

이 인터페이스를 구현해야 합니다. 먼저 DeserializeReply 메서드를 재정의하여 메시지를 역직렬화합니다. 이 메서드는 들어오는 메시지를 받은 후, 클라이언트 작업으로 전달되기 전에 호출됩니다.

다음으로, 개체를 직렬화하기 위한 SerializeRequest 메서드를 재정의합니다. 이 메서드는 보내는 메시지를 보내기 전에 호출됩니다.

사용자 지정 포맷터를 서비스 애플리케이션에 삽입하려면, 작업 동작을 사용하여 IDispatchMessageFormatter 개체를 Formatter 속성에 할당합니다. 동작에 대한 자세한 내용은 동작을 사용하여 런타임 구성 및 확장을 참조하세요.

참고하십시오