(C#)Privateフィールドこじ開け拡張クラス
internal static class ObjectExtension
{
private static FieldInfo GetPrivateField(this object target, string fieldName)
{
return target.GetType().GetField(fieldName, BindingFlags.NonPublic | BindingFlags.Instance);
}
public static T GetPrivateFieldValue<T>(this object target, string fieldName)
{
return (T)target.GetPrivateField(fieldName).GetValue(target);
}
public static object GetPrivateFieldValue(this object target, string fieldName)
{
return target.GetPrivateFieldValue<object>(fieldName);
}
public static void SetPrivateFieldValue(this object target, string fieldName, object value)
{
target.GetPrivateField(fieldName).SetValue(target, value);
}
}
自分用。
この記事が気に入ったらサポートをしてみませんか?