反射调用Method
GetMethod(string name)
在反射重载方法时,如果调用此重载方法,会产生发现不明确的匹配 的错误。
解决方案如下:
GetMethod("MethodName", new Type [] { typeof(参数类型)});
其中type数组中的项的个数是由要调用的方法的参数个数来决定的。
如果无参数,则new Type[]{},使Type数组中的项个数为0
例:GetMethod("get_Item", new Type [] { typeof(int)});
PS:
我们知道,引用类型的对象使用常规的赋值方式只是将对象指针赋给变量,但有些时候,我们希望赋值是赋一个副本而不是指针,那么可以用对象提供的类似Clone()方法来获取对象的浅副本,但一些对象并未提供类似的方法,那么我们可以用下面的方法来获取对象的浅副本:
MethodInfo mi=typeof(object).GetMethod("MemberwiseClone",BindingFlags.NonPublic | BindingFlags.Instance); return mi.Invoke(objectSource,null); 如果是自己定义的类,可以自己加入一个Clone方法: Public myObject Clone() { return (myObject)base.MemberWiseClone(); }
posted on 2013-05-17 16:00 wanglgkaka 阅读(219) 评论(0) 编辑 收藏 举报