System / Reflection / Type
GetMembers Method
public virtual MemberInfo[] GetMembers();
Retrieves all public members of the current Type.
Overload List
GetMembers()
public virtual MemberInfo[] GetMembers();
Retrieves all public members of the current Type.
Return Value
MemberInfo[]
An array of MemberInfo objects representing all the public members of the current Type. If the current Type has no public members, an empty array is returned.
Remarks
This method retrieves public members. To retrieve members that are not public, use the GetMembers(BindingFlags bindingAttr) overload.
Example
using System;
using System.Reflection;
public class Example
{
public string MyProperty { get; set; }
public void MyMethod() { }
public event EventHandler MyEvent;
public int MyField;
}
public class Program
{
public static void Main(string[] args)
{
Type myType = typeof(Example);
MemberInfo[] members = myType.GetMembers();
Console.WriteLine($"Members of {myType.Name}:");
foreach (MemberInfo member in members)
{
Console.WriteLine($"- {member.MemberType}: {member.Name}");
}
}
}
GetMembers(BindingFlags bindingAttr)
public virtual MemberInfo[] GetMembers(BindingFlags bindingAttr);
Retrieves all members of the current Type that match the specified binding attributes.
Parameters
bindingAttr
A bitmask that specifies the type of members to search for. System.Reflection.BindingFlags members.
BindingFlags.Public: Specifies public members.BindingFlags.NonPublic: Specifies non-public members.BindingFlags.Instance: Specifies instance members.BindingFlags.Static: Specifies static members.BindingFlags.DeclaredOnly: Specifies that only members declared by the Type should be returned.BindingFlags.InvokeMethod: Specifies methods.BindingFlags.GetField: Specifies fields.BindingFlags.GetProperty: Specifies properties.BindingFlags.Event: Specifies events.BindingFlags.All: All binding flags.
Return Value
MemberInfo[]
An array of MemberInfo objects representing members of the current Type that match the specified binding attributes. If no members match the attributes, an empty array is returned.
Remarks
BindingFlags.Public | BindingFlags.Instance will retrieve all public instance members.
Example
using System;
using System.Reflection;
public class MyClass
{
public int PublicInstanceField;
private int privateInstanceField;
public static int PublicStaticField;
public void PublicInstanceMethod() { }
private void PrivateInstanceMethod() { }
}
public class Program
{
public static void Main(string[] args)
{
Type myType = typeof(MyClass);
// Get all public instance members
MemberInfo[] publicInstanceMembers = myType.GetMembers(BindingFlags.Public | BindingFlags.Instance);
Console.WriteLine("\nPublic Instance Members:");
foreach (MemberInfo member in publicInstanceMembers)
{
Console.WriteLine($"- {member.MemberType}: {member.Name}");
}
// Get all private instance members
MemberInfo[] privateInstanceMembers = myType.GetMembers(BindingFlags.NonPublic | BindingFlags.Instance);
Console.WriteLine("\nPrivate Instance Members:");
foreach (MemberInfo member in privateInstanceMembers)
{
Console.WriteLine($"- {member.MemberType}: {member.Name}");
}
// Get all public static members
MemberInfo[] publicStaticMembers = myType.GetMembers(BindingFlags.Public | BindingFlags.Static);
Console.WriteLine("\nPublic Static Members:");
foreach (MemberInfo member in publicStaticMembers)
{
Console.WriteLine($"- {member.MemberType}: {member.Name}");
}
}
}