Может быть, это делает гибрид. Посмотрите, находится ли он в памяти, и если нет (необходимо впервые), загрузите его в него (возможно, с Dictionary<string, Stream>
) и используйте его оттуда. Таким образом, у вас нет большой проблемы с загрузкой в начале, и вы берете только те файлы в память, которая действительно нужна, а не возможно существующие, но не нужные.