public void Handle(IArgument arg, ArgumentConstraintAttribute attrib) { ArgumentConstraintHelper.XHandle <IntArg, MaxValueAttribute>( arg, attrib, (arg2, attrib2) => arg2.MaxValue = attrib2.MaxValue); }
public static void XHandle <TArg, TAttr>( IArgument arg, ArgumentConstraintAttribute attrib, Action <TArg, TAttr> action) where TArg : IArgument where TAttr : ArgumentConstraintAttribute { if (arg == null) { throw new ArgumentNullException($"{nameof( arg )} must not be null", nameof(arg)); } if (!(arg is TArg)) { throw new ArgumentException($"{nameof( arg )} must be assignable to {nameof( TArg )}", nameof(arg)); } if (attrib == null) { throw new ArgumentNullException($"{nameof( attrib )} must not be null", nameof(attrib)); } if (!(attrib is TAttr)) { throw new ArgumentException( $"{nameof( attrib )} must ne assignable to {nameof( TAttr )}", nameof(attrib)); } if (action == null) { throw new ArgumentNullException($"{nameof( action )} must not be null", nameof(action)); } action((TArg)arg, (TAttr)attrib); }