gpt4 book ai didi

c# - 使用反射 (C#) 获取 RuntimeMethodInfo 对象的 ReturnParameter 的 Name 属性

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:51 25 4
gpt4 key购买 nike

假设我在 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])我正在编写一个持久性框架,这将有助于识别表的键名,该键名包含在上述两种方法中。

似乎 RuntimeMethodInfo 的 ReturnParameter 属性有一个名为 Name 的属性,应该可以帮助我解决这个问题,但它即将变为空。

为了获得那个 RuntimeMethodInfo 对象,我正在使用这个 BindingFlags 枚举获得 B 类实例的成员:

  • BindingFlags.Public | BindingFlags.实例 | BindingFlags.DeclaredOnly

我怎样才能得到这个字段名?此行为应该与属性相同。

提前致谢

最佳答案

恐怕这是不可能的,因为字段名称是已实现代码的一部分,反射不知道如何检索它。持久性框架通常使用一种映射来提供此类信息。例如,您可以使用 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;
}
}

关于c# - 使用反射 (C#) 获取 RuntimeMethodInfo 对象的 ReturnParameter 的 Name 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9352066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com