2010-08-03 14 views

Répondre

13

Il n'y a pas de voie directe. La chose que vous pouvez faire est de vérifier IsFamily et IsPublic drapeau de MethodInfo:

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

'GetMethods' pas simplement' GetMethod' je suppose – abatishchev

4

Eh bien, ne pouvez-vous pas obtenir tous les MemberInfo s et les filtrer par IsFamily et IsPublic propriétés?

+0

Cette réponse est beaucoup mieux par rapport aux autres, à mon avis. – Andry

2
using System.Linq; 
using System.Reflection; 

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