public Task <IBinding> TryCreateAsync(BindingProviderContext context) { ParameterInfo parameter = context.Parameter; ServiceBusAttribute serviceBusAttribute = parameter.GetCustomAttribute <ServiceBusAttribute>(inherit: false); if (serviceBusAttribute == null) { return(Task.FromResult <IBinding>(null)); } string queueOrTopicName = Resolve(serviceBusAttribute.QueueOrTopicName); IBindableServiceBusPath path = BindableServiceBusPath.Create(queueOrTopicName); path.ValidateContractCompatibility(context.BindingDataContract); IArgumentBinding <ServiceBusEntity> argumentBinding = _innerProvider.TryCreate(parameter); if (argumentBinding == null) { throw new InvalidOperationException("Can't bind ServiceBus to type '" + parameter.ParameterType + "'."); } string connectionString = _accountProvider.ConnectionString; ServiceBusAccount account = ServiceBusAccount.CreateFromConnectionString(connectionString); IBinding binding = new ServiceBusBinding(parameter.Name, argumentBinding, account, path); return(Task.FromResult(binding)); }