示例#1
0
        // Called once per method definition. Very static.
        public Task <IBinding> TryCreateAsync(BindingProviderContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            ParameterInfo parameter = context.Parameter;
            TAttribute    attribute = parameter.GetCustomAttribute <TAttribute>(inherit: false);

            if (attribute == null)
            {
                return(Task.FromResult <IBinding>(null));
            }

            IBinding binding = BindingFactoryHelpers.BindCollector <TAttribute, TMessage>(
                parameter,
                _nameResolver,
                _converterManager,
                context.BindingDataContract,
                _buildFromAttribute,
                _buildParamDescriptor,
                _postResolveHook);

            return(Task.FromResult(binding));
        }
            public override IBinding CreateBinding()
            {
                IBinding binding = BindingFactoryHelpers.BindCollector <TAttribute, TMessage>(
                    Parameter,
                    NameResolver,
                    new IdentityConverterManager(),
                    this.Context.BindingDataContract,
                    this.BuildFromAttribute,
                    null);

                return(binding);
            }