Bha*_*uru 17 c# asp.net dispose httpresponse asp.net-web-api
在ASP.NET webapi中,我将一个临时文件发送到客户端.我打开一个流来读取文件并在HttpResponseMessage上使用StreamContent.一旦客户端收到文件,我想删除这个临时文件(没有来自客户端的任何其他调用)一旦客户端收到文件,就会调用HttpResponseMessage的Dispose方法,并且还会处理流.现在,我想删除临时文件.
一种方法是从HttpResponseMessage类派生一个类,重写Dispose方法,删除该文件并调用基类的dispose方法.(我还没有尝试过,所以不知道这是否有效)
我想知道是否有更好的方法来实现这一目标.
Len*_*rri 15
实际上你的评论有助于解决这个问题......我在这里写到:
删除通过ASP.NET Web API HttpResponseMessage中的StreamContent发送的临时文件
这对我有用.请注意,内部调用的顺序Dispose
与您的注释不同:
public class FileHttpResponseMessage : HttpResponseMessage
{
private string filePath;
public FileHttpResponseMessage(string filePath)
{
this.filePath = filePath;
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
Content.Dispose();
File.Delete(filePath);
}
}
Run Code Online (Sandbox Code Playgroud)
Ser*_*eyS 10
从具有DeleteOnClose选项的FileStream创建StreamContent.
return new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StreamContent(
new FileStream("myFile.txt", FileMode.Open,
FileAccess.Read, FileShare.None, 4096, FileOptions.DeleteOnClose)
)
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5793 次 |
最近记录: |