바이너리 파일에 대한 참조를 반환해야하는 클래스 인터페이스를 작성하고 있습니다. 일반적으로 파일에 대한 참조를 파일 경로로 제공합니다. 그러나 일부 파일 (예 : 작은 축소판 그림)을 데이터베이스에 저장하는 대신 파일 시스템에 저장하는 것이 좋습니다. 이 경우 데이터베이스의 썸네일을 디스크로 읽어 들이고 파일에 경로를 반환하여 프로그램에서 읽을 수있는 추가 단계를 추가하고 싶지 않습니다. 사용자가 명시 적으로 무언가를 저장하고 싶지 않으면 디스크에 직접 이미지를 스트리밍하여 프로그램에 스트리밍하고 디스크에 아무 것도 쓰지 않는 것이 좋습니다.FileStream을 파일에 대한 일반 인터페이스로 반환 할 수 있습니까?
제 인터페이스가 FileStream
또는 Image
을 돌려 주겠습니까? 그런 다음 FileStream
또는 Image
의 소스가 데이터베이스의 디스크 또는 바이너리 파일에있는 파일인지 여부를 확인하는 것은 구현 클래스에 달려 있습니다. 그 크기가 매우 큰없는 경우
public interface MyInterface
{
string Thumbnail {get;}
string Attachment {get;}
}
대
는public interface MyInterface
{
Image Thumbnail {get;}
FileStream Attachment {get;}
}
FileStream을 통한 스트림이 필요한 이유는 무엇입니까? –
발신자로부터 콘텐츠 원본을 추상화합니다. 스트림이 파일이나 일종의 데이터베이스 blob과 같은 다른 소스 일 수있는 경우 특히 유용합니다. MemoryStream 일 수도 있습니다. 처음에 일종의 데이터베이스 blob 스트림으로 시작한 다음 전체 blob을 먼저 읽으려고 결정한 경우 호출자에게 아무런 영향을주지 않고 MemoryStream으로 전환 할 수 있습니다. 일반적으로 호출자가 어떤 유형의 스트림인지 알 필요가없는 한 항상 스트림을 사용합니다. (그리고 적어도 내 코드에서는 사실 인 경우를 기억할 수 없습니다.) – jdasilva