2011-11-10 4 views
1

웹 서버에서 파일을 다운로드하고 그 파일을 반환해야하는 메서드가있는 래퍼 클래스가 있습니다. HttpWebResponse 개체는 본문에 대한 스트림을 반환합니다.스트림을 반환하는 것이 안전합니까?

스트림을 반환해야합니까? 또는 그것을 바이트 배열로 변환하고 대신 반환해야합니까?

이 래퍼 클래스는 여러 곳에서 사용할 수 있으므로 파일을 반환하려면 확실한 방법이 필요합니다. 모든 경우에 파일은 어댑터 클래스에서 파일을받은 후 어딘가에 저장됩니다.

답변

3

짧은 답변 : 네, 괜찮습니다.

답변 : 예, Stream을 반환하는 것이 안전합니다. .NET에서 가비지 컬렉터는 똑똑하고 Stream 등의 처리에 대해 걱정할 필요가 없습니다. 즉, 을 —으로 호출하지 않는 한 재사용을 계획하고있는 경우에는 사용하지 말아야합니다.

+0

대단히. 나가 시내를 아주 수시로 취급하지 않으며 몇몇 huger faux pas를 ​​만들고 있었다 확실하지 않은 때 다만 약간 안심을 원했다. – Fellmeister

2

돌아 오는 Stream 객체는 완전히 유효합니다. 스트림을 반환하는 메소드를 호출하는 코드의 책임은 해당 메소드를 처리하는 것입니다. 질문 : 래퍼 메서드에서 응답 개체를 삭제해도 스트림을 처리하지 않습니까? 그렇다면 내용을 MemoryStream에 복사하거나 임시 파일을 만들어 대신 공개 스트림을 반환하십시오.

+0

좋은 지적. 나는 연극을하고 어떤 일이 일어날지를 볼 것입니다. – Fellmeister

관련 문제