Type.GetFields 返回空数组

本文关键字:数组 返回 GetFields Type | 更新日期: 2023-09-27 17:57:06

我正在尝试动态获取公共字段,但它一直返回一个空列表。 我成功加载了一个用户控件,但它的类型是用户控件,这意味着我使用 .基类型获取实际类型。 但是当我打电话时.GetFields() 它返回一个空的 FieldInfo 数组。

usercontrolPath = "/usercontrols/HelloWorldTestUC.ascx"
Page pageHolder = new Page();
UserControl usercontrol = (UserControl)pageHolder.LoadControl("~/" + usercontrolPath);
Type type = usercontrol.GetType().BaseType;
FieldInfo[] infos = type.GetFields(BindingFlags.Public);
//i will do something here
control.Controls.Add(usercontrol);

下面是用户控件代码:

public partial class HelloWorldTestUC : System.Web.UI.UserControl
{
    public int Number = 0;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            txtMessage.Text = Message.ToString();
        }
    }
}

知道为什么它会返回一个空数组吗? 它至少应该返回"数字"。

Type.GetFields 返回空数组

您的 BindingFlags 不完整。您可能希望BindingFlags.Public | BindingFlags.Instance获取公共实例字段。