Получить свойство returnParameter объекта RuntimeMethodinfo с использованием Reflection (C#)
-
27-10-2019 - |
Вопрос
Предположим, у меня есть следующий класс в 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;
}
}
На основании отражения, могу ли я получить имя поля, используемого методом getId () (и/или) setId ()? (В случае, [b_id]) Я кодирую структуру стойкости, и было бы полезно определить ключевое имя таблицы, которая заключена обоими методами выше.
Похоже, что свойство ReturnParameter RuntimeMethodinfo имеет свойство под названием имя, которое должно помочь мне с этим, но оно составляет NULL.
Чтобы получить этот объект runtimemethodinfo, я получаю членов экземпляра B -класса, используя это перечисление BindingFlags:
- BindingFlags.public | BindingFlags.instance | Bindingflags.declaredonly
Как я могу получить имя этого поля? Такое поведение должно быть таким же со свойствами.
заранее спасибо
Решение
Я боюсь, что это невозможно, потому что имя поля является частью реализованного кода, и размышления не имеют ни малейшего понятия, как его получить. Постоянные фреймворки обычно используют своего рода отображение для предоставления такой информации. Например, вы можете использовать XML -файл или вы можете использовать аттестат над своими полями, чтобы представить их в качестве ключа или столбцов вашей таблицы что -то вроде этого:
[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;
}
}