private static BuilderType[] GetParameters(BuilderType type) { if (type != null && type.IsGenericInstance && type.Fullname.StartsWith("System.Func")) { var args = type.GetGenericArguments().ToArray(); return(args.Take(args.Length - 1).ToArray()); } else if (type != null && type.IsGenericInstance) { return(type.GetGenericArguments().ToArray()); } return(new BuilderType[0]); }
private static BuilderType GetDelegateType(BuilderType type) { if (type != null && type.IsGenericInstance && type.Fullname.StartsWith("System.Func")) { return(type.GetGenericArguments().Last()); } return(type.Builder.GetType("System.Void")); }