Compartir a través de


Cómo crear un contrato unidireccional

En este tema se muestran los pasos básicos para crear métodos que utilizan un contrato unidireccional. Tales métodos invocan las operaciones de un servicio de Windows Communication Foundation (WCF) desde un cliente, pero no esperan una respuesta. Se puede utilizar este tipo de contrato, por ejemplo, para publicar notificaciones a muchos suscriptores. También puede utilizar los contratos unidireccionales al crear un contrato dúplex (bidireccional), que permita a los clientes y servidores comunicarse entre sí independientemente de modo que cualquiera de ellos pueda iniciar una llamada al otro. Esto puede permitir, en particular, al servidor que realice llamadas unidireccionales al cliente que el cliente puede tratar como eventos. Para obtener información detallada sobre cómo especificar métodos unidireccionales, vea la propiedad IsOneWay y la clase OperationContractAttribute.

Para obtener más información acerca de creación de una aplicación cliente para un contrato dúplex, vea Cómo: Obtener acceso a los servicios WCF con contratos unidireccionales y de solicitud-respuesta. Para obtener un ejemplo práctico, vea el ejemplo Service Contract: One-Way.

Creación de un contrato unidireccional

  1. Cree el contrato de servicios aplicando la clase ServiceContractAttribute a la interfaz que define los métodos que el servicio va a implementar.

  2. Indique qué métodos de la interfaz puede invocar un cliente aplicándoles la clase OperationContractAttribute.

  3. Designe operaciones que no deban tener ningún resultado (ningún valor devuelto y ningún parámetro out o ref) como unidireccionales mediante el establecimiento de la propiedad IsOneWay en true. Observe que las operaciones que llevan la clase OperationContractAttribute satisfacen de forma predeterminada un contrato de solicitud‑respuesta porque la propiedad IsOneWay es false de forma predeterminada. Así que debe especificar explícitamente el valor de la propiedad de atributo para que sea true si desea un contrato unidireccional para el método.

Ejemplo

El siguiente ejemplo de código define un contrato para un servicio que incluye varios métodos unidireccionales. Todos los métodos tienen contratos unidireccionales excepto Equals, que tiene como valor predeterminado solicitud‑respuesta y devuelve un resultado.

Consulte también

Tareas

Definición de un contrato de servicio de Windows Communication Foundation
Creación de un contrato dúplex

Referencia

ServiceContractAttribute
OperationContractAttribute

Conceptos

Diseño e implementación de servicios

Otros recursos

Service Contract: Session