Ejemplo n.º 1
0
        /// <summary>
        /// Does the register.
        /// </summary>
        /// <param name="instance">The instance.</param>
        /// <param name="method">The method.</param>
        /// <param name="paramConstraints">The parameter constraints.</param>
        public override void DoRegister(object instance, MethodInfo method, IEnumerable <OpConstraint> paramConstraints)
        {
            var constraints = new List <OpConstraint>();

            constraints.AddRange(paramConstraints);
            constraints.Add(new ArgCountConstraint(method.GetParameters().Length));

            OpRegistry.Register(OpName, args => method.Invoke(instance, args), constraints);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Does the register.
        /// </summary>
        /// <param name="instance">The instance.</param>
        /// <param name="method">The method.</param>
        /// <param name="paramConstraints">The parameter constraints.</param>
        public override void DoRegister(object instance, MethodInfo method, IEnumerable <OpConstraint> paramConstraints)
        {
            var constraints = new List <OpConstraint>();

            constraints.AddRange(paramConstraints);
            constraints.Add(new ArgCountConstraint(method.GetParameters().Length));

            var methodParams = method.GetParameters();

            for (int i = 0; i < methodParams.Length; ++i)
            {
                if (methodParams[i].ParameterType == typeof(NDArray))
                {
                    constraints.Add(new ArgStorageTypeConstraint(i, storageType));
                }
            }

            OpRegistry.Register(OpName, args => method.Invoke(instance, args), constraints);
        }