none
Es necesario cerrar un servicio cuando lo uso RRS feed

  • Pregunta

  • Saludos.

    He visto en algunos sitios en la web que conusmen un servicio de la siguiente forma (yo tambien lo ago de esta manera):

    WCFServiceLog.Service1Client c = new WCFServiceLog.Service1Client();
                x = c.UserLog(x);

    Ahora tambien he visto que muchos cierran el servicio de la siguiente manera:

      WCFServiceLog.Service1Client c = new WCFServiceLog.Service1Client();
                x = c.UserLog(x);
                c.Close();

    Mi pregunta es: ¿Es necesario cerrar el servisio? ¿En que me perjudicaria si no lo ago?

    Chargoy

    martes, 24 de julio de 2012 14:35

Respuestas

  • es necesario uses el using

    using(WCFServiceLog.Service1Client c = new WCFServiceLog.Service1Client()){ x = c.UserLog(x);

    }


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Chargoy miércoles, 25 de julio de 2012 21:21
    martes, 24 de julio de 2012 15:59

Todas las respuestas

  • es necesario uses el using

    using(WCFServiceLog.Service1Client c = new WCFServiceLog.Service1Client()){ x = c.UserLog(x);

    }


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Chargoy miércoles, 25 de julio de 2012 21:21
    martes, 24 de julio de 2012 15:59
  • Saludos leandro....

    Disculpa mi ignorancia pero ¿Para que me sirve el Using al usar el servicio?


    Chargoy

    martes, 24 de julio de 2012 16:21
  • con el using defines un ambito de la declaracion del contexto de esa variable sera usa

    cuando sales de ese bloque el objeto se destruye de forma correcta


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 24 de julio de 2012 17:02
  • Haber si entendi bien....

    Usar el Using() es como si hiciera el c.Close(), unicamente el servicio existiria en ese bloque donde se define el using() ???

    Y cual de los dos es más conveniente de utilizar?

    Gracias de antemano.


    Chargoy

    martes, 24 de julio de 2012 17:22
  • no visualices solo el close, se hace el Dispose() del objeto, se destruye de memoria

    el using siempre es mas seguro porque evita que comentas errores o que algun error anule el close de una funcionalidad y quede vigente el objeto


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 24 de julio de 2012 19:07
  • Hola Chargoy.

    Tal y como te comenta Leandro, lo ideal es que hagas uso del "using" y de esa forma te puedes despreocupar de tener que liberar posteriormente la memoria usada por la instancia del servicio puesto que se hará automáticamente. Podrías hacerlo a mano también, pero... sería más código, te podría causar errores o despistes y con using es muchísimo más elegante.

    Sí te aconsejo que tengas cuidado al usarlo ya que la instancia sólo perdura en el propio bloque.


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"

    martes, 24 de julio de 2012 21:36
  • Saludos.

    Muchas gracias por sus respuestas a ambos. Son de gran utilidad.


    Chargoy

    miércoles, 25 de julio de 2012 21:20