public override async Task <ITriggerData> BindAsync(TTriggerValue value, ValueBindingContext context) { Dictionary <string, object> bindingData = Hooks.GetBindingData(value); TMessage[] arrayRaw = Hooks.BindMultiple(value, context); int len = arrayRaw.Length; Type elementType = _innerBinding.ElementType; var arrayUser = Array.CreateInstance(elementType, len); for (int i = 0; i < len; i++) { TMessage item = arrayRaw[i]; object obj = await _innerBinding.ConvertAsync(item, null, context); arrayUser.SetValue(obj, i); } Type arrayType = elementType.MakeArrayType(); IValueProvider valueProvider = new ConstantValueProvider(arrayUser, arrayType, "???"); var triggerData = new TriggerData(valueProvider, bindingData); return(triggerData); }