Ejemplo n.º 1
0
 public void Handle(IArgument arg, ArgumentConstraintAttribute attrib)
 {
     ArgumentConstraintHelper.XHandle <IntArg, MaxValueAttribute>(
         arg,
         attrib,
         (arg2, attrib2) => arg2.MaxValue = attrib2.MaxValue);
 }
Ejemplo n.º 2
0
        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);
        }