A MemoryStream
не связан с файлом и не имеет понятия имени файла. По сути, вы не можете этого сделать.
Вы, конечно, не можете использовать их между собой; вы можете бросать только вверх, а не вниз; для визуализации:
Stream
|
---------------
| |
FileStream MemoryStream
Вы можете привести MemoryStream
к Stream
тривиально, а Stream
к MemoryStream
с помощью проверки типов; но никогда от FileStream
до MemoryStream
. Это все равно что сказать, что собака - это животное, а слон - это животное, поэтому мы можем бросить собаку в слона.
Вы могли бы подкласс MemoryStream
и добавить свойство Name
(для которого вы указали значение), но между FileStream
и YourCustomMemoryStream
все равно не было бы общего и FileStream
не реализует ранее существующий интерфейс для получения Name
; так что вызывающий должен будет явно обрабатывать оба по отдельности, или использовать утку (возможно, с помощью dynamic
или отражения).
Другой вариант (возможно, более простой) может быть следующим: записать ваши данные во временный файл; используйте FileStream
оттуда; затем (позже) удалите файл.