none
problemas varios metodos usan el mismo memoryStream. RRS feed

  • Pregunta

  • hola foro:

    Tengo un problema con memoryStream , me tira el error siguiente

     System.ObjectDisposedException: 'No se puede obtener acceso a una secuencia cerrada.' . El error me da al ejecuta el segundo metodo GenerarCuadroTipoOperacion

    el codigo es el siguiente:

    public byte[] StreamDocumento(byte[] archivoGenerado)
            {
               MemoryStream fileGeneradoMemStream = new MemoryStream();
               fileGeneradoMemStream.Write(archivoGenerado, 0, archivoGenerado.Length);
               fileGeneradoMemStream.Position = 0;
                
                if (cliente.TieneFoto)
                {
                    GenerarMapaBarrio(fileGeneradoMemStream);
                }
           
                GenerarCuadroTipoOperacion(memoryStreamFinal);
                
                return memoryStreamFinal.ToArray();
            }
    		
    		
    //los dos metodos tienen esta firma  private void GenerarCuadroTipoOperacion(MemoryStream fileGeneradoMemStream)
                
    		

    Como podria resolver 

    Gracias

    miércoles, 15 de agosto de 2018 21:49

Respuestas

  • Creo que has mezclado una variable diferente. El primer método pasa como argumento fileGeneradoMemStream, que es el MemoryStream que has inicializado en esa misma subrutina. Pero el segundo método pasa como argumento memoryStreamFinal, que no se ve por ningún sitio en el código que has presentado. Presumiblemente es alguna variable que tienes declarada a nivel global, y a juzgar por el error que te sale, ese otro Stream seguramente está cerrado en el momento en el que lo llamas.
    jueves, 16 de agosto de 2018 6:12
    Moderador

Todas las respuestas

  • Creo que has mezclado una variable diferente. El primer método pasa como argumento fileGeneradoMemStream, que es el MemoryStream que has inicializado en esa misma subrutina. Pero el segundo método pasa como argumento memoryStreamFinal, que no se ve por ningún sitio en el código que has presentado. Presumiblemente es alguna variable que tienes declarada a nivel global, y a juzgar por el error que te sale, ese otro Stream seguramente está cerrado en el momento en el que lo llamas.
    jueves, 16 de agosto de 2018 6:12
    Moderador
  • Gracas alberto , el codigo es asi en realidad, perdon mezcle codigo del cambio que empece a hacer para tratar de solucionar error

    public byte[] StreamDocumento(byte[] archivoGenerado)
            {
               MemoryStream fileGeneradoMemStream = new MemoryStream();
               fileGeneradoMemStream.Write(archivoGenerado, 0, archivoGenerado.Length);
               fileGeneradoMemStream.Position = 0;
                
                if (cliente.TieneFoto)
                {
                    GenerarMapaBarrio(fileGeneradoMemStream);
                }
           
                GenerarCuadroTipoOperacion(fileGeneradoMemStream);
                
                return fileGeneradoMemStream.ToArray();
            }
    		

    jueves, 16 de agosto de 2018 11:54
  • hola

    cual es el codigo dentro del GenerarMapaBarrio() ? quizas alli estas cerrando el memorystream

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 16 de agosto de 2018 12:45