Desarrollo de canalesDeveloping Channels

Para desarrollar un protocolo o canal de transporte que se pueda utilizar con el nivel de aplicación Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) son necesarios varios pasos.To develop a protocol or transport channel that can be used with the Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) application layer requires several steps. En este tema se describen esos pasos y se le dirige a temas con información específica.This topic describes those steps and points you to specific topics for more information. Para entender el modelo de canal y los distintos tipos que se mencionan en este tema, vea información general del modelo de canal.To understand the channel model and the various types that are mentioned in this topic, see Channel Model Overview. Para obtener un ejemplo de canal de transporte completa, consulte transporte: UDP.For a complete transport channel sample, see Transport: UDP.

La lista de tareas de desarrollo de canalThe Channel Development Task List

Los pasos para crear un canal definido por el usuario son como sigue.The steps to create a user-defined channel are as follows. Todos los canales deben:All channels must:

  1. Decidir qué patrones de intercambio de mensajes de canal (IOutputChannel, IInputChannel, IDuplexChannel, IRequestChannel o IReplyChannel) IChannelFactory y IChannelListener admitirán, así como si serán compatibles las variaciones con sesión de estas interfaces.Decide which of the channel Message Exchange Patterns (IOutputChannel, IInputChannel, IDuplexChannel, IRequestChannel, or IReplyChannel) your IChannelFactory and IChannelListener will support, as well as whether it will support the sessionful variations of these interfaces. Para obtener más información, consulte elegir un patrón de intercambio de mensajes.For details, see Choosing a Message Exchange Pattern.

  2. Cree un generador de canales y un agente de escucha (IChannelFactory y IChannelListener) que admitan su patrón de intercambio de mensajes.Create a channel factory and listener (IChannelFactory and IChannelListener) that support your message exchange pattern. Para obtener más información acerca de cómo desarrollar generadores, consulte cliente: generadores de canales y canales.For details about developing factories, see Client: Channel Factories and Channels. Para obtener más información sobre el desarrollo de los agentes de escucha, vea servicio: canales y agentes de escucha del canal.For details about developing listeners, see Service: Channel Listeners and Channels.

  3. Asegurarse de que cualquier excepción específica de la red se normaliza a System.TimeoutException o a la clase derivada adecuada de CommunicationException.Ensure that any network-specific exceptions are normalized to either System.TimeoutException or the appropriate derived class of CommunicationException. Para obtener más información, consulte control de excepciones y errores.For details, see Handling Exceptions and Faults.

  4. Para habilitar el uso del nivel de aplicación, agregue un BindingElement que añade el canal personalizado a una pila del canal.To enable use from the application layer, add a BindingElement that adds the custom channel to a channel stack. Para obtener más información, consulte creación de un BindingElement.For more information, see Creating a BindingElement.

Son necesarios pasos adicionales para permitir una compatibilidad más completa en el nivel de la aplicación:The following additional steps are required to enable more complete support at the application layer:

  1. Agregue una sección de extensión de elemento de enlace para exponer el nuevo elemento de enlace al sistema de configuración.Add a binding element extension section to expose the new binding element to the configuration system. Para obtener más información, consulte configuración y compatibilidad con metadatos.For more information, see Configuration and Metadata Support.

  2. Agregue las extensiones de metadatos para comunicar las funciones a otros extremos.Add metadata extensions to communicate capabilities to other endpoints. Para obtener más información, consulte configuración y compatibilidad con metadatos.For more information, see Configuration and Metadata Support.

  3. Agregue un enlace que configura previamente una pila de elementos de enlace según un perfil bien determinado.Add a binding that pre-configures a stack of binding elements according to a well-defined profile. Para obtener más información, consulte crear enlaces.For more information, see Creating User-Defined Bindings.

  4. Agregue una sección de enlace y un elemento de configuración de enlace para exponer el enlace al sistema de configuración.Add a binding section and binding configuration element to expose the binding to the configuration system. Para obtener más información, consulte configuración y compatibilidad con metadatos.For more information, see Configuration and Metadata Support.

Vea tambiénSee Also

Extensión de enlacesExtending Bindings