A MemoryStream
no está asociado a un archivo y no tiene ningún concepto de nombre de archivo. Básicamente, no puedes hacer eso.
Ciertamente no se puede transmitir entre ellos; solo puedes lanzar hacia arriba y hacia abajo, no hacia los lados; visualizar:
Stream
|
---------------
| |
FileStream MemoryStream
usted puede echar un MemoryStream
a un Stream
trivialmente, y una Stream
a un MemoryStream
a través de un tipo a comprobar; pero nunca un FileStream
a un MemoryStream
. Eso es como decir que un perro es un animal, y un elefante es un animal, por lo que podemos lanzar un perro a un elefante.
Usted podría subclase MemoryStream
y añade una propiedad Name
(que proporcione un valor para), pero todavía habría nada en común entre un FileStream
y una YourCustomMemoryStream
y FileStream
no implementa una interfaz preexistente a obtener un Name
; por lo que la persona que llama tendría que manejar explícitamente ambos por separado, o usar pato-tipado (tal vez a través de dynamic
o reflejo).
Otra opción (quizás más fácil) podría ser: escribir sus datos en un archivo temporal; use un FileStream
desde allí; luego (más tarde) borre el archivo.
Este enfoque es incorrecto. ¿Qué estás intentando lograr? – Snowbear
No está claro qué es lo que quiere hacer. Un 'MemoryStream' definitivamente no se puede convertir a' FileStream', y mientras se puede convertir a 'Stream', esa clase no tiene una propiedad' .Name'. ¿Qué es lo que estás tratando de hacer? ¿Qué nombre estás buscando? –