public static MethodCommand Create(MethodInfo method, object instance = null, string name = null) { var d = MethodCommandDescriptor.Build(method); d.Name = d.Name ?? name; return(new MethodCommand(d, method, method.GetParameters().Select(p => new MethodParameter(p)), instance)); }
public MethodCommand(MethodCommandDescriptor descriptor, MethodInfo method, IEnumerable <MethodParameter> parameters, object instance) : base(descriptor) { Instance = instance; Method = method; Parameters = new ReadOnlyCollection <MethodParameter>(parameters.ToArray()); CompileInvocator(); }
internal static MethodCommandDescriptor Build(MethodInfo method) { var descr = new MethodCommandDescriptor { Name = method.Name.ToLower() }; descr.ReadAttributes(method.DeclaringType); // TODO: May be some overrides and other side effects descr.ReadAttributes(method); return(descr); }