Я пытаюсь получить имя переменной свойства вместо значения. В настоящее время я использую рефлексию, но если у кого-то есть другие предложения, это будет высоко оценено.
У меня есть три класса
A:
class A
{
public B bObject;
int Number { return bObject.number; } //returns 3
}
B
class B
{
public int number = 3;
}
C:
class C
{
public void myMethod()
{
A aObject = new A();
var aNumber = aObject
.GetType()
.GetProperty("Number")
.GetValue(aObject, null);
//this is the value. aNumber = 3.
var objName = nameof(aNumber); //returns aNumber
}
Я хочу, чтобы objName вернул строку "bObject.number", переменную, которая была вызвана внутри свойства. Возможно ли это с моей текущей настройкой, и если нет, у кого-нибудь есть рекомендации?
Я бы предпочел, чтобы в B не было другого метода, возвращающего «nameof (bObject) + nameof (bObject.number)», а затем вызывал бы и этот метод, и реквизит из-за избыточности. Спасибо за ваше время.