public override async Task GetValueAsync()

in src/WebJobs.Extensions/Framework/Bindings/StreamValueBinder.cs [84:121]


        public override async Task<object> GetValueAsync()
        {
            if (_parameter.IsOut)
            {
                return null;
            }

            Stream stream = GetStream();

            if (_parameter.ParameterType == typeof(TextWriter) ||
                _parameter.ParameterType == typeof(StreamWriter))
            {
                return new StreamWriter(stream);
            }
            else if (_parameter.ParameterType == typeof(TextReader) ||
                    _parameter.ParameterType == typeof(StreamReader))
            {
                return new StreamReader(stream);
            }
            else if (_parameter.ParameterType == typeof(string))
            {
                using (StreamReader reader = new StreamReader(stream))
                {
                    string value = await reader.ReadToEndAsync();
                    return value;
                }
            }
            else if (_parameter.ParameterType == typeof(byte[]))
            {
                using (var ms = new MemoryStream())
                {
                    await stream.CopyToAsync(ms);
                    return ms.ToArray();
                }
            }

            return stream;
        }