我有一个Web应用程序,我在其中使用 asp:FileUpload 控件上传用户XSD
并使用以下语句读取其内容(实际上不上载XML架构)按钮功能
using (StreamReader reader = new StreamReader(FileUploadControlName.FileContent))
这个阅读器对象在Click
按钮功能中用于阅读XMLSchema
,因此我在此基础上生成集合。
我只是想知道有没有办法再次使用这个StreamReader
对象,以便我可以处理Web-Application中其他控件操作的操作。
可以有办法将读者写入Memorystream
并重复使用MemoryStream
。
对不起,我是新来的。
答案 0 :(得分:2)
您可以通过将Position
属性设置为0来重用MemoryStream。
示例:
Stream s = new MemoryStream();
StreamReader sr = new StreamReader(s);
// later... after we read stuff
s.Position = 0;
如果您想通过应用程序重用相同的对象,那么您可以使用Session变量。然后,当您需要重复使用它时,只需将位置再次设置为0并使用StreamReader
读取它。
答案 1 :(得分:1)
通过调用using
,Steam块将在块结束后处理,但不会在流本身处理。您可以将流存储在Session变量中并像这样重用它,但我建议您记住清除Session变量。您可以使用MemoryStream,也可以将文件移动到e TEMP位置,并将文件位置存储在Session变量中。我会选择那个。