2017-02-27 98 views

回答

0

我創建了下面的類,這和從IRequestHandler.GetResourceResponseFilter返回它的實例:

internal class ResponseSniffer : IResponseFilter 
{ 
    private readonly Action<Stream> _streamHandler; 

    public ResponseSniffer(Action<Stream> streamHandler) 
    { 
     _streamHandler = streamHandler; 
    } 

    public void Dispose() 
    { 
    } 

    public bool InitFilter() 
    { 
     return true; 
    } 

    public FilterStatus Filter(Stream dataIn, out long dataInRead, Stream dataOut, out long dataOutWritten) 
    { 
     if (dataIn == null) 
     { 
      dataInRead = 0; 
      dataOutWritten = 0; 
      return FilterStatus.Error; 
     } 
     dataIn.CopyTo(dataOut); 
     dataInRead = dataIn.Length; 
     dataOutWritten = dataInRead; 

     dataIn.Position = 0; 
     _streamHandler(dataIn); 
     return FilterStatus.Done; 
    } 
}