问题描述
Typetype=obj.GetType(methodName);MethodInfo[]methods=type.GetMethods();///methods里得到了所有方法的集合inti=0;foreach(MethodInfomethodinmethods){if(method.IsPublic)//这里是得到方法集合中的方法是否是公共方法。{Console.WriteLine("methodname:"+method.Name);}}编译结果:methodname:get_UserIdmethodname:Set_UserIdmethodname:get_UserNamemethodname:Set_UserNamemethodname:Showmethodname:Testshowmethodname:GetTypemethodname:ToStringmethodname:Equalsmethodname:GetHashCode其中前面四个是我的属性,后面四个是系统的方法。我要得到是中间的两个方法show,Testshow.这两个方法是我自己写的。请问怎样才能得到自己写的方法不还要属性。
解决方案
解决方案二:
帮顶
解决方案三:
嘗試加type.GetMethods(BindingFlags);去試試。可能會有你想要的效果。
解决方案四:
我尝试过还是不行啊!难道就没有高人指点??????
解决方案五:
CustomizeAttribute标记你的方法,反射控制即可。
解决方案六:
//这里是得到方法集合中的方法是否是公共方法?这个问题我来回答,不只是公共方法。你可以在foreach的循环中找到私有的方法。并且能看到它的访问控制权限。当然可以使用BindingFlags来过滤一些你不想要的方法。反射还有一个方法叫:GettyProperties()能够得到属性要想只得到你自己写的方法,好像不太现实。但是你只得到你自己的方法有用吗,我很奇怪。使用反射时你肯定的知道自己的方法名字,参数类型,返回值这些信息啊。
解决方案七:
引用5楼jummy_lin的回复:
//这里是得到方法集合中的方法是否是公共方法?这个问题我来回答,不只是公共方法。你可以在foreach的循环中找到私有的方法。并且能看到它的访问控制权限。当然可以使用BindingFlags来过滤一些你不想要的方法。反射还有一个方法叫:GettyProperties()能够得到属性要想只得到你自己写的方法,好像不太现实。但是你只得到你自己的方法有用吗,我很奇怪。使用反射时你肯定的知道自己的方法名字,参数类型,返回值这些信息…
我错了,对不起。{这里是得到方法集合中的方法是否是公共方法?这个问题我来回答,不只是公共方法}这里如果不使用BindingFlags,默认得到的确实是共有方法。
解决方案八:
1学习