public virtual Dictionary <string, string> GetParameterDescriptions()
        {
            string methodDesc;
            string returnDesc;
            Dictionary <string, string> ps = PMEXmlParser.GetMethodDescription(VPLUtil.GetObjectType(Owner.ObjectType), MethodDef, out methodDesc, out returnDesc);
            IDynamicMethodParameters    d  = Owner.ObjectInstance as IDynamicMethodParameters;

            if (d != null)
            {
                Dictionary <string, string> pc = d.GetParameterDescriptions(this.MemberName);
                if (pc != null)
                {
                    foreach (KeyValuePair <string, string> kv in pc)
                    {
                        if (ps.ContainsKey(kv.Key))
                        {
                            ps[kv.Key] = kv.Value;
                        }
                        else
                        {
                            ps.Add(kv.Key, kv.Value);
                        }
                    }
                }
            }
            return(ps);
        }
        public override object Invoke(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, System.Globalization.CultureInfo culture)
        {
            IDynamicMethodParameters dmp = obj as IDynamicMethodParameters;

            if (dmp != null)
            {
                return(dmp.InvokeWithDynamicMethodParameters(_mb.Name, invokeAttr, binder, parameters, culture));
            }
            return(null);
        }
        private MethodInfoPointer createPointer(MultiPanes viewersHolder, XmlNode rootNode)
        {
            MethodInfoPointer mp;

            if (_val is SubMethodInfo)
            {
                mp = new SubMethodInfoPointer();
            }
            else
            {
                mp = new MethodInfoPointer();
            }
            mp.Owner      = Owner;
            mp.MemberName = _val.Name;
            ParameterInfo[]          pifs = null;
            IDynamicMethodParameters dmp  = Owner.ObjectInstance as IDynamicMethodParameters;

            if (dmp != null)
            {
                pifs = dmp.GetDynamicMethodParameters(_val.Name, null);
            }
            if (pifs == null)
            {
                pifs = _val.GetParameters();
            }
            if (pifs != null && pifs.Length > 0)
            {
                Type[] ts = new Type[pifs.Length];
                for (int i = 0; i < ts.Length; i++)
                {
                    ts[i] = pifs[i].ParameterType;
                }
                mp.ParameterTypes = ts;
            }
            mp.SetMethodInfo(_val);
            return(mp);
        }
 public SimpleMethodInfo(MethodBase method, IDynamicMethodParameters owner, object attrs)
 {
     _attrs = attrs;
     _mb    = method;
     _owner = owner;
 }