Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
        }