Я пытаюсь установить частное поле "visible" для переменной типа BaseClass.
Я успешно получил доступ к переменной типа ChildClass и FieldInfo для поля "visible" в BaseClass.
Но когда я пытаюсь установить / получить значение поля, я получаю сообщение об ошибке System.Runtime.Remoting.RemotingException: Remoting не может найти поле 'visible' для типа 'BaseClass'.
Так есть ли способ "привести вниз" переменную типа ChildClass к BaseClass, чтобы отражение работало?
Редактировать: Точный код, который я использую:
// get the varible
PropertyInfo pi = overwin.GetProperty("Subject", BindingFlags.Instance|BindingFlags.Public);
CalcScene scene = (CalcScene) pi.GetValue(inwin, null);
// <<< scene IS ACTUALLY A TYPE OF DisplayScene, WHICH INHERITS FROM CalcScene
// get the 'visible' field
Type calScene = typeof(CalcScene);
FieldInfo calVisible = calScene.GetField("visible",BindingFlags.Instance|BindingFlags.NonPublic);
// set the value
calVisible.SetValue(scene, true); // <<< CANNOT FIND FIELD AT THIS POINT
Точная структура класса:
class CalcScene
{
private bool visible;
}
class DisplayScene : CalcScene
{
}