W sposobie Web API jestem generując plik, a następnie strumieniowego go do odpowiedzi Podobnie jakWeb API - Jak wykryć, gdy reakcja zakończyła wysyłane
public async Task<HttpResponseMessage> GetFile() {
FileInfo file = generateFile();
var msg = Request.CreateResponse(HttpStatusCode.OK);
msg.Content = new StreamContent(file.OpenRead());
msg.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
msg.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") {FileName = file.Name};
return msg;
}
bo ten wygenerowany plik chcę usuń go po zakończeniu odpowiedzi, ale nie mogę znaleźć haka w przygotowaniu.
Przypuszczam, że mogę umieścić odwołanie do pliku w statycznej i ustawić niestandardowy MessageHandler, który wyciąga wartości z tej samej zmiennej statycznej i usuwa. Wydaje się jednak, że nie może to być słuszne zarówno ze względu na użycie statycznego (gdy wszystko powinno być na żądanie), jak i dlatego, że musiałbym zarejestrować oddzielną trasę.
Widziałem this question, ale wydaje mi się, że nie ma zbytniej przydatnej odpowiedzi.
Dzięki Kiran, próbowałem zrobić coś takiego z deseniem dekoratora i wyciągałem włosy, ponieważ nie mogłem po prostu przesłonić publiczności. W tej notatce (i od kiedy pracujesz w Web Api) masz szansę, aby HttpContent był oparty na interfejsie w przyszłości? –
I tak, generuję plik pdf, ale robię to, wysyłając do phantomjs, więc File jest moim podstawowym formatem wymiany, niestety 'Stream' –