c# - tener - flujo blanco y cuando se seca es amarillo
Cómo desechar correctamente el flujo al usar StreamContent (1)
Como su único recurso que debe eliminarse es el Contenido del HttpResponseMessage
, no tiene que preocuparse por ello. El marco se pone a su disposición. Se eliminará el HttpResponseMessage
que hará toda la disposición necesaria. Eliminar el uso y debería funcionar bien.
El HttpResponseMessage eliminará su contenido cuando se elimine. Ver implementación de .NET Core
El StreamContent eliminará su flujo cuando se disponga. Ver implementación de .NET Core de StreamContent
Si necesita desechar algo que no haya sido eliminado por el HttpResponseMessage, puede usar request.RegisterForDispose
como lo describe Filip Woj
Estoy intentando devolver un flujo desde mi punto final de webapi y luego limpiarlo eliminando el flujo.
Esperaba que esta fuera la forma correcta, pero el flujo, por supuesto, se elimina antes de volver.
using(var stream = GetStream()){
var response = new HttpResponseMessage();
response.Content = new StreamContent(stream);
return response;
}
¿Cuál será la forma correcta de disponer la corriente?
(Como MSDN no dice nada sobre el comportamiento de StreamContent o sus métodos, mi solución temporal es copiar el contenido de la secuencia en una matriz de bytes y devolverlo).