public Task <IBinding> TryCreateAsync(BindingProviderContext context) { if (context == null) { throw new ArgumentNullException("context"); } var parameter = context.Parameter; var typeUser = parameter.ParameterType; if (typeUser.IsByRef) { return(Task.FromResult <IBinding>(null)); } var type = typeof(ExactBinding <>).MakeGenericType(typeof(TAttribute), typeof(TType), typeUser); var method = type.GetMethod("TryBuild", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); var binding = BindingFactoryHelpers.MethodInvoke <IBinding>(method, this, context); return(Task.FromResult <IBinding>(binding)); }
public Task <IBinding> TryCreateAsync(BindingProviderContext context) { if (context == null) { throw new ArgumentNullException("context"); } var parameter = context.Parameter; var typeUser = parameter.ParameterType; if (typeUser.IsByRef) { typeUser = typeUser.GetElementType(); // Can't generic instantiate a ByRef. } var type = typeof(StreamBinding); var method = type.GetMethod("TryBuild", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); method = method.MakeGenericMethod(typeUser); var binding = BindingFactoryHelpers.MethodInvoke <IBinding>(method, this, context); return(Task.FromResult <IBinding>(binding)); }