Иногда нужно получить доступ к private полям класса, а у вас нет возможности модифицировать класс. Это можно сделать так:
static void Main(string[] args)
{
PrivateClass myPrivateClass = new PrivateClass();
// input from ToString() at the beginning to see the content
Console.WriteLine(myPrivateClass);
FieldInfo fi = typeof(PrivateClass).GetField("_privateText", BindingFlags.NonPublic | BindingFlags.Instance);
String valueFromPrivateField = fi.GetValue(myPrivateClass).ToString();
Console.WriteLine("And this was read with reflection: {0}", valueFromPrivateField);
}
static void Main(string[] args)
{
PrivateClass myPrivateClass = new PrivateClass();
// input from ToString() at the beginning
Console.WriteLine(myPrivateClass);
FieldInfo fi = typeof(PrivateClass).GetField("_privateText", BindingFlags.NonPublic | BindingFlags.Instance);
fi.SetValue(myPrivateClass, "but I''m going to change you!");
Console.WriteLine(myPrivateClass);
}