A MemoryStream
non è associato a un file e non ha alcun concetto di nome file. Fondamentalmente, non puoi farlo.
Non si può certamente castare tra loro; puoi solo lanciare verso l'alto un verso il basso - non di lato; di visualizzare:
Stream
|
---------------
| |
FileStream MemoryStream
si può lanciare un MemoryStream
ad un Stream
banalmente, e un Stream
ad un MemoryStream
attraverso un tipo-check; ma mai uno FileStream
a MemoryStream
. È come dire che un cane è un animale, e un elefante è un animale, quindi possiamo lanciare un cane a un elefante.
Si potrebbe sottoclasse MemoryStream
e aggiunge una proprietà Name
(che si fornisce un valore per), ma ci sarebbe ancora nessuna comunanza tra un FileStream
e un YourCustomMemoryStream
, e FileStream
non implementa un'interfaccia preesistente a prendi un Name
; quindi il chiamante dovrebbe esplicitamente gestire entrambi separatamente oppure utilizzare la digitazione anatra (forse tramite dynamic
o riflessione).
Un'altra opzione (forse più semplice) potrebbe essere: scrivere i dati in un file temporaneo; utilizzare un FileStream
da lì; poi (più tardi) cancella il file.
fonte
2011-11-28 14:56:02
Questo approccio è sbagliato. Cosa stai cercando di ottenere? – Snowbear
Non è chiaro cosa vuoi fare. Un 'MemoryStream' non può essere gettato su un' FileStream', e mentre è possibile eseguire il cast su 'Stream', quella classe non ha una proprietà' .Name'. Che cosa stai cercando di fare? Quale nome stai cercando? –