Страницы

Поиск по вопросам

четверг, 13 июня 2019 г.

Как узнать тип свойства класса, если оно обозначено модификатором доступа private

Есть класс, в нём есть свойство и конструктор
public class Pen { private int inkContainerValue = 1000;
public Pen(int inkContainerValue) { this.inkContainerValue = inkContainerValue; }
в стороннем классе я создаю объект этого класса и хочу узнать какого тип переменная inkContainerValue как это реализовать?


Ответ

Вы делаете почти правильно. Вот такой код получает нужный вам тип:
var classType = typeof(Pen); var field = classType.GetField( "inkContainerValue", BindingFlags.Instance | BindingFlags.NonPublic); var fieldType = field.FieldType;
Вам нужно было работать с GetField (т. к. inkContainerValue — это поле, а не свойство), и указать флаги, разрешающие рефлексию приватных полей.

Тем не менее, присоединяюсь к комментарию @andreycha: скорее всего вам это не нужно.

Комментариев нет:

Отправить комментарий