2017-08-08 7 views
0

私はPDF文書を扱うためのWebAPIを作成しています。以前はIHttpHandlerを実装し、HttpContextを使用してコンテキストを取得するashxページで書かれていました。私は今WebAPIを使ってそれを書いています。 WebAPIにはHttpResponseMessageがあります。 HttpContext.Response.BinaryWriteの場合、新しいByteArrayContentがHttpResponseMessageにあります。しかし、WebAPIのHttpContext.Response.OutputStreamの代替手段は何ですか?このOutputStreamを別のdllにパラメータとして渡すので、WebAPIにOutputStramの代替手段を用意する必要があります。 ASHXでWebAPIのHttpResponseMessageで使用するHttpContext.Response.OutputStreamの代替手段

コード:

SomeReport.PdfReport rpt = new SomeReport.PdfReport(docID); 
rpt.CreateReport(context.Response.OutputStream); 

答えて

2

実際にあなたが例MemoryStreamのための任意のストリームを使用することができますが、結果はStreamContentにラップする必要があります。あなたは出力ストリームに直接書き込みが必要な場合

public HttpResponseMessage Get() 
{ 
    var response = Request.CreateResponse(); 

    var outputStream = new MemoryStream(); 

    //write data to output stream 
    //or passing it to somewhere 
    outputStream.WriteByte(83); 

    outputStream.Position = 0; 
    response.Content = new StreamContent(outputStream); 

    return response;  
} 

PushStreamContentの使用を検討してください。 Example

+0

ありがとう、Ivan。出来た。私はMemoryStreamの使用について懸念していました。 PushStreamContentも試してみます。 –

+0

ようこそ。あなたを助けてうれしい。 –