public override async Task BindAsync()

in src/WebJobs.Script/Binding/ExtensionBinding.cs [74:126]


        public override async Task BindAsync(BindingContext context)
        {
            context.Attributes = Attributes.ToArray();

            if (_binding.DefaultType == typeof(IAsyncCollector<byte[]>))
            {
                await BindAsyncCollectorAsync<byte[]>(context);
            }
            else if (_binding.DefaultType == typeof(IAsyncCollector<JObject>))
            {
                await BindAsyncCollectorAsync<JObject>(context);
            }
            else if (_binding.DefaultType == typeof(IAsyncCollector<string>))
            {
                await BindAsyncCollectorAsync<string>(context);
            }
            else if (_binding.DefaultType == typeof(Stream))
            {
                if (ScriptHost.IsFunctionDataCacheEnabled)
                {
                    if (await TryPrepareAttributesAndBindCacheAwareAsync(context, Access))
                    {
                        return;
                    }
                }

                await BindStreamAsync(context, Access);
            }
            else if (_binding.DefaultType == typeof(JObject))
            {
                await BindJTokenAsync<JObject>(context, Access);
            }
            else if (_binding.DefaultType == typeof(JArray))
            {
                await BindJTokenAsync<JArray>(context, Access);
            }
            else if (_binding.DefaultType == typeof(string))
            {
                await BindStringAsync(context);
            }
            else if (_binding.DefaultType == typeof(ParameterBindingData[]))
            {
                await BindCollectionAsync<ParameterBindingData>(context);
            }
            else if (_binding.DefaultType == typeof(ParameterBindingData))
            {
                await BindParameterBindingDataAsync(context);
            }
            else
            {
                throw new NotSupportedException($"ScriptBinding type {_binding.DefaultType} is not supported");
            }
        }