Получите свойство Name ReturnParameter объекта RuntimeMethodInfo, используя Reflection (C#)
Предположим, у меня есть следующий класс в C#:
public class B : A
{
public Int32 B_ID;
public String B_Value;
public Int32 getID()
{
return B_ID;
}
public void setID(Int32 value)
{
B_ID = value;
}
}
Основываясь на Reflection, могу ли я получить имя поля, используемого методом getID() (и / или) setID()? (в случае, [B_ID]) Я кодирую постоянную среду, и было бы полезно определить ключевое имя таблицы, которая заключена в обоих методах выше.
Кажется, что свойство ReturnParameter в RuntimeMethodInfo имеет свойство Name, которое должно помочь мне в этом, но оно становится пустым.
Чтобы получить этот объект RuntimeMethodInfo, я получаю члены экземпляра класса B, используя перечисления BindingFlags:
- BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly
Как я могу получить это имя поля? Это поведение должно быть таким же со свойствами.
заранее спасибо
1 ответ
Я боюсь, что это невозможно, потому что имя поля является частью реализованного кода, а рефлексия не имеет ни малейшего понятия, как его получить. Постоянные фреймворки обычно используют своего рода отображение для предоставления такой информации. Например, вы можете использовать xml-файл или использовать attirbutes над вашими полями, чтобы представить их в качестве ключа или столбцов вашей таблицы примерно так:
[Table(name="MyTable")]
public class B : A
{
[Key(column_name="id")]
public Int32 B_ID;
public String B_Value;
public Int32 getID()
{
return B_ID;
}
public void setID(Int32 value)
{
B_ID = value;
}
}