コード例 #1
0
ファイル: DeepInterceptor.cs プロジェクト: mxProject/Misc
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="TResponse"></typeparam>
        /// <param name="streamWriter"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        private IServerStreamWriter <TResponse> CreateServerStreamWriter <TResponse>(IServerStreamWriter <TResponse> streamWriter, ServerCallContext context)
            where TResponse : class
        {
            Task onWrite(IServerStreamWriter <TResponse> writer, TResponse response)
            {
                async Task func(TResponse res)
                {
                    await writer.WriteAsync(res).ConfigureAwait(false);
                }

                return(InterceptServerWriteResponse(func, response, context));
            }

            return(streamWriter.Wrap(onWrite));
        }