Добрый день,Доступ к, казалось бы, публичной собственности через отражение
Я изо всех сил пытаюсь определить, в чем проблема с попыткой доступа к публичной собственности в классе.
Моя потребность очень проста. У меня есть открытый класс, который правильно инсценирован в моей рутине, и я знаю, благодаря рефлектору, что у этого класса есть свойство, которое мне нужно ссылаться.
Проблема, свойство определяется как таким образом:
public Vector3 root {
[MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get;
[MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] set;
}
Проблема я столкнулся в том, что все мои попытки получения свойства просто терпят неудачу. Я инстанс типа, и пытался всеми возможными комбинациями флагов связывания
Type vtype = myobj.getType()
PropertyInfo[] vproperties;
vproperties = vtype.GetProperties();//(BindingFlags.Default | BindingFlags.CreateInstance | BindingFlags.Instance | BindingFlags.NonPublic);
for (int vpropertycounter =0 ; vpropertycounter < vproperties.Length ; vpropertycounter++) {
Console.write(varbodyproperties[varpropertycounter].Name); <= 'root' never appears in this list
}
Моего подозрения и сомнения вертится вокруг того, что корневая свойство не может быть «Запись видна», потому что его геттер и сеттер является «wrapperless 'и' internal '. К сожалению, я не знаю, можно ли это преодолеть или нет.
Я хотел бы знать, может ли это свойство быть доступным, и, возможно, как это сделать.
Вся обратная связь приветствуется.
Заранее спасибо.
ПРИМЕЧАНИЕ: обращение к объекту непосредственно, так как в «myobj.root» генерируется ошибка компилятора для неизвестного свойства.
Благодаря вашему предложению я понял, что могу на самом деле назвать сеттера и геттер, что привело меня к пониманию того, что я использовал неправильный тип для итерации отражения! – roamcel