2010-08-03 90 views

回答

13

没有直接的办法。你可以做的事情就是检查IsFamilyIsPublic标志MethodInfo

minfo = b.GetType().GetMethod("publicProtectedMember", 
     BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public); 
if (minfo.IsFamily || minfo.IsPublic) 
{ 
    string s = fd.Member(); 
} 
+0

'GetMethods'不只是'GetMethod'我猜 – abatishchev 2010-08-03 08:00:51

4

那么,你不能只是得到所有的MemberInfo s和IsFamilyIsPublic属性?

+0

比别人在我看来,当这个答案要好得多。 – Andry 2017-05-15 12:47:22

2
using System.Linq; 
using System.Reflection; 

var methods = foo 
    .GetType() 
    .GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) 
    .Where(m => m.IsFamily || m.IsPublic);