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