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;
}