C# 使用反射创建web控件的实例
如何在运行时使用反射创建web控件的实例?我创建了一系列实现公共接口的控件,我希望根据存储在数据库中的控件名称创建这些控件 我尝试(但失败)使用Activator.CreateInstance以以下方式创建这些控件的实例:C# 使用反射创建web控件的实例,c#,asp.net,reflection,C#,Asp.net,Reflection,如何在运行时使用反射创建web控件的实例?我创建了一系列实现公共接口的控件,我希望根据存储在数据库中的控件名称创建这些控件 我尝试(但失败)使用Activator.CreateInstance以以下方式创建这些控件的实例: Activator.CreateInstance("MyUserControl") 及 …并且都返回null 我还尝试通过尝试获取控件的类型 Type t = Type.GetType("controls_myusercontrol_ascx"); 及 …并返回null
Activator.CreateInstance("MyUserControl")
及
…并且都返回null
我还尝试通过尝试获取控件的类型
Type t = Type.GetType("controls_myusercontrol_ascx");
及
…并返回null
如果我显式地将一个对象声明为controls\u myusercontrol\u ascx或myusercontrol,则没有问题——但在反射中找不到它
是否可以在运行时使用反射创建web用户控件?如果是这样,我该怎么做?您可以使用
页面上的加载控制
方法或控制
类执行此操作。从Visual Studio帮助:
void Page_Init(object sender, System.EventArgs e)
{
// Instantiate the UserControl object
MyControl myControl1 =
(MyControl)LoadControl("TempControl_Samples1.ascx.cs");
PlaceHolder1.Controls.Add(myControl1);
}
Type t = Type.GetType("MyUserControl");
void Page_Init(object sender, System.EventArgs e)
{
// Instantiate the UserControl object
MyControl myControl1 =
(MyControl)LoadControl("TempControl_Samples1.ascx.cs");
PlaceHolder1.Controls.Add(myControl1);
}