次のコードがあります。
ClassName class = new ClassName();
var getValue = GetPrivateProperty<BaseClass>(class, "BoolProperty");
public static T GetPrivateProperty<T>(object obj, string name)
{
BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic;
PropertyInfo field = typeof(T).GetProperty(name, flags);
return (T)field.GetValue(obj, null);
}
returnステートメントでInvalidCastExceptionを取得すると、System.Boolean型のオブジェクトをClassName型に変換できません。BaseClass にはプロパティがあります。ClassName は BaseClass を継承しています。「ClassName」クラスからすべてのプロパティにアクセスする必要があります。このプロパティはプライベートであるため、BaseClass を介して直接アクセスする必要があります。これは機能しますが、プロパティの戻り値がブール値であるため、クラッシュします。
ありがとう!