繁体   English   中英

Type.GetFields返回空数组

[英]Type.GetFields returns empty array

我正在尝试动态获取公共字段,但它一直返回一个空列表。 我成功加载了一个usercontrol,但是它是UserControl类型的,这意味着我使用.BaseType来获取真实类型。 但是,当我调用.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);

这是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();
        }
    }
}

知道为什么它会返回一个空数组吗? 它至少应返回“ Number”。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM