Thomas Darimont
Erfahrenes Mitglied
Hallo!
hier mal ein kleines Beispiel wie man private Attribute via Reflection auslesen kann:
Gruß Tom
hier mal ein kleines Beispiel wie man private Attribute via Reflection auslesen kann:
C#:
using System;
using BindingFlags = System.Reflection.BindingFlags;
using FieldInfo = System.Reflection.FieldInfo;
namespace De.Tutorials.Training
{
/// <summary>
/// A little example for accessing a private instance field via reflection.
/// </summary>
/// <author>Thomas.Darimont</author>
public class ReflectionExample
{
public static void Main(string[] args)
{
PrivateDataHolder privateDataHolder = new PrivateDataHolder();
Console.WriteLine(GetValueOfPrivateFieldFor(privateDataHolder,"data"));
}
public const BindingFlags ACCESS_PRIVATE_INSTANCE_FIELDS = BindingFlags.Instance | BindingFlags.NonPublic;
public static object GetValueOfPrivateFieldFor(object instance, string fieldName)
{
FieldInfo fieldInfo = (FieldInfo)instance.GetType().GetMember(fieldName, ACCESS_PRIVATE_INSTANCE_FIELDS).GetValue(0);
return fieldInfo.GetValue(instance);
}
}
class PrivateDataHolder
{
private string data = "Foo";
}
}
Gruß Tom