0
我想动态获取公共字段,但它一直返回一个空列表。我加载一个usercontrol成功,但它是UserControl类型,这意味着我使用.BaseType来获得真正的类型。但是当我调用.GetFields()时,它会返回一个空的FieldInfo数组。Type.GetFields返回空数组
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();
}
}
}
任何想法,为什么它会返回一个空数组?它至少应该返回'Number'。
whay你需要.BaseType吗? – TYY
UserControl.BaseType会给我实际的类型 – Base33