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(this.OpName, args => method.Invoke(instance, args), constraints); }
public override void DoRegister(object instance, MethodInfo method, IEnumerable <OpConstraint> paramConstraints) { List <OpConstraint> constraints = new List <OpConstraint>(); constraints.AddRange(paramConstraints); constraints.Add(new ArgCountConstraint(method.GetParameters().Length)); ParameterInfo[] methodParams = method.GetParameters(); for (int i = 0; i < methodParams.Length; ++i) { if (methodParams[i].ParameterType == typeof(Tensor)) { constraints.Add(new ArgStorageTypeConstraint(i, storageType)); } } OpRegistry.Register(OpName, args => method.Invoke(instance, args), constraints); }