Cerrar y eliminar un servicio WCF
-
09-06-2019 - |
Pregunta
El Close
método en un ICommunicationObject
puede generar dos tipos de excepciones como lo describe MSDN aquí.Entiendo por qué el Close
El método puede generar esas excepciones, pero lo que no entiendo es por qué Dispose
El método en un proxy de servicio llama al Close
método sin try
alrededor.¿No es tu Dispose
¿Método el único lugar donde desea asegurarse de no generar ninguna excepción?
Solución
Parece ser un patrón de diseño común en el código .NET.Aquí hay una cita de Directrices de diseño del marco.
Considere proporcionar el método Close(), además de Dispose(), si close es la terminología estándar en el área.Al hacerlo, es importante que la implementación Cerrar sea idéntica a Disponer...
Aquí hay un entrada en el blog en el que puede encontrar una solución alternativa para este problema de diseño System.ServiceModel.ClientBase
Otros consejos
Sí, normalmente Dispose es uno de los lugares donde desea asegurarse de que no se generen excepciones.Sin embargo, según este MSDN hilo del foro Hubo algunas razones históricas para este comportamiento.Como tal, el patrón recomendado es el paradigma try{Close}/catch{Abort}.