Summary description for MemberResolver.
        /// <summary>
        /// TODO: Summary
        /// </summary>
        /// <param name="action"></param>
        /// <param name="args"></param>
        /// <param name="signature"></param>
        /// <returns></returns>
        public Object Invoke(String action, Object[] args, Type[] signature)
        {
            if (action == null)
            {
                throw new ArgumentNullException("action");
            }

            ManagementOperation operation = (ManagementOperation)info.Operations[action];

            if (operation == null)
            {
                throw new InvalidOperationException(String.Format("Operation {0} doesn't exists.", action));
            }

            MethodInfo method = resolver.GetMethod(MemberResolver.BuildOperationName(action, signature));

            if (method == null)
            {
                foreach (MethodInfo met in resolver.Methods)
                {
                    if (!met.Name.Equals(operation.Name))
                    {
                        continue;
                    }

                    ParameterInfo[] parameters = met.GetParameters();

                    if (MemberResolver.Match(parameters, signature))
                    {
                        method = met;
                        break;
                    }
                }
            }

            if (method == null)
            {
                throw new InvalidOperationException(String.Format("Operation {0} doesn't exists for the specified signature.", action));
            }

            return(method.Invoke(instance, args));
        }
		public CodeGenerationDynamicSupport(Object instance, ManagementInfo info, MemberResolver resolver)
		{
			this.info     = info;
			this.instance = instance;
			this.resolver = resolver;
		}
Пример #3
0
 public CodeGenerationDynamicSupport(Object instance, ManagementInfo info, MemberResolver resolver)
 {
     this.info     = info;
     this.instance = instance;
     this.resolver = resolver;
 }
		public ReflectedDynamicSupport(Object instance, ManagementInfo info, MemberResolver resolver)
		{
			this.info     = info;
			this.instance = instance;
			this.resolver = resolver;
		}
 public ReflectedDynamicSupport(Object instance, ManagementInfo info, MemberResolver resolver)
 {
     this.info     = info;
     this.instance = instance;
     this.resolver = resolver;
 }