c# wcf remoting

c# - ¿Qué es un Channel Factory en.NET?



wcf remoting (2)

¿Qué es un Channel Factory y por qué lo usas?


La clase ChannelFactory se utiliza para construir un canal entre el cliente y el servicio sin la necesidad de un proxy. En algunos casos, es posible que tenga un servicio que esté estrechamente vinculado a la aplicación cliente. En tal caso, puede hacer referencia a la DLL de interfaz directamente y usar ChannelFactory para llamar a sus métodos usando eso.

Le sugiero que también vaya a través de la diferencia entre Proxy y Channel factory. Esto le ayudará a comprender el uso exacto de Channel Factory.


Si usó la Add Service Reference Visual Studio, o la herramienta svcutil.exe , probablemente nunca verá un ChannelFactory.

Básicamente, la creación del proxy del lado del cliente para un servicio WCF es un proceso de dos pasos:

  • cree el ChannelFactory<T> apropiado para su contrato de servicio específico
  • Dado ese canal de fábrica, cree el canal de comunicación real entre el cliente y el servicio

Si tiene control sobre ambos extremos del cable, y puede colocar sus contratos de servicios y datos en un conjunto separado, puede separar este proceso de dos pasos y manejarlo manualmente:

  • cree el ChannelFactory<IMyService> una vez, esta es una operación bastante compleja y lenta, así que si es posible, intente hacer esto solo cuando sea realmente necesario, y luego almacene en caché la fábrica de canales para volver a utilizarlos

  • cree el canal real utilizando la fábrica de canales siempre que necesite comunicarse con el servidor

Es una construcción muy específica para los servicios de WCF, por lo que no creo que alguna vez la utilice fuera del alcance de WCF.