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; }