У меня есть служба WCF
, которая получит идентификатор и вернет pdf-файл, основанный на идентификаторе. Я предполагаю, что лучший способ сделать это - преобразовать файл pdf в какую-то строку и затем вернуть его. Однако я не уверен, какой поток использовать (Stream, Filestream, or MemoryStream
).Что было бы самым эффективным способом преобразования pdf в поток
Я знаю, что могу читать pdf-файл в байтовый массив, а затем делать что-то с ним с помощью MemoryStream, но я чувствую, что есть более эффективный способ.
Я пытался делать то, что было предложено в этом посте здесь: How to convert a pdf to a memory stream
жесткого кодирования путь к файлу, чтобы вернуться, как так:
return File(@"C:\MyFile.pdf", "application/pdf");
Просто чтобы посмотреть, что происходит, но получаю сообщение об ошибке на File
говоря: `` System.IO.File 'является «типом», но используется как «переменная».
Может ли кто-нибудь дать небольшую информацию?
EDIT
Это в настоящее время, что я работаю на:
[OperationContract]
[WebInvoke(Method = "GET",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/GetInvoiceFile")]
Stream GetInvoiceFile(string id);
public Stream GetInvoiceFile(string BillingPeriodId)
{
byte[] bytes = File.ReadAllBytes(@"C:\pdf-test.pdf");
return new MemoryStream(bytes);
}
Я просто не знаю точно, как я хотел бы изменить свой OperationContract
вернуть PDF. Есть идеи?
'Файл' является вспомогательной функцией для контроллеров MVC и не применим к WCF. –
@DStanley - Я должен был подумать, что это будет проблемой. Что было бы эффективным способом сделать это с помощью WCF? – scapegoat17