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)); }
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); }