public Task <IBinding> BindAsync <TValue>(Attribute attribute, CancellationToken cancellationToken)
        {
            ParameterInfo          parameterInfo          = new FakeParameterInfo(typeof(TValue), _memberInfo, attribute);
            BindingProviderContext bindingProviderContext =
                new BindingProviderContext(parameterInfo, bindingDataContract: null, cancellationToken: cancellationToken);

            return(_bindingProvider.TryCreateAsync(bindingProviderContext));
        }
        public Task <IBinding> BindAsync <TValue>(RuntimeBindingContext context, CancellationToken cancellationToken)
        {
            ParameterInfo          parameterInfo          = new FakeParameterInfo(typeof(TValue), _memberInfo, context.Attribute, context.AdditionalAttributes.ToArray());
            BindingProviderContext bindingProviderContext =
                new BindingProviderContext(parameterInfo, bindingDataContract: null, cancellationToken: cancellationToken);

            return(_bindingProvider.TryCreateAsync(bindingProviderContext));
        }
Beispiel #3
0
        public static async Task <bool> CanBindAsync(IBindingProvider provider, Attribute attribute, Type t)
        {
            ParameterInfo parameterInfo = new FakeParameterInfo(
                t,
                new FakeMemberInfo(),
                attribute,
                null);

            BindingProviderContext bindingProviderContext = new BindingProviderContext(
                parameterInfo, bindingDataContract: null, cancellationToken: CancellationToken.None);

            try
            {
                var binding = await provider.TryCreateAsync(bindingProviderContext);
            }
            catch (Exception)
            {
                return(false);
            }
            return(true);
        }