public async Task <IValueProvider> BindAsync(IStorageBlob blob, ValueBindingContext context) { WatchableReadStream watchableStream = await ReadBlobArgumentBinding.TryBindStreamAsync(blob, context); if (watchableStream == null) { return(BlobValueProvider.CreateWithNull <TextReader>(blob)); } TextReader reader = ReadBlobArgumentBinding.CreateTextReader(watchableStream); return(new BlobWatchableDisposableValueProvider(blob, reader, typeof(TextReader), watcher: watchableStream, disposable: reader)); }
public async Task <IValueProvider> BindAsync(IStorageBlob blob, ValueBindingContext context) { WatchableReadStream watchableStream = await ReadBlobArgumentBinding.TryBindStreamAsync(blob, context); if (watchableStream == null) { return(BlobValueProvider.CreateWithNull <string>(blob)); } string value; ParameterLog status; using (watchableStream) using (TextReader reader = ReadBlobArgumentBinding.CreateTextReader(watchableStream)) { context.CancellationToken.ThrowIfCancellationRequested(); value = await reader.ReadToEndAsync(); status = watchableStream.GetStatus(); } return(new BlobWatchableValueProvider(blob, value, typeof(string), new ImmutableWatcher(status))); }