获取使用反射继承Type X的Usercontrol

时间:2012-08-28 11:07:46

标签: c# asp.net reflection

在Web应用程序中给出此usercontrol ascx:

<%@ Control Language="C#" Inherits="TypeX" Codebehind="TypeX.ascx.cs" %>

当我开始使用时,是否可以使用反射来获取用户控件:

Type targetType = typeof(TypeX);
... now what? to code to get the usercontrol

我试过用:

assembly.GetTypes().Where(t => t.IsSubclassOf(targetType))

但这并没有给出任何结果。

任何帮助表示赞赏

额外信息:

代码隐藏(简化)是:

 public partial class TypeX : UserControlBase
{
}

//we use this control:
<%@ Control Language="C#" Inherits="Loadcontrol " Codebehind="Loadcontrol .ascx.cs" %>
//with this codebehind
 public partial class Loadcontrol 
{
    OnPrerender()
    {
        string controlToLoad = "TypeX";
        //what to do here
    }

}

我希望现在更清楚

更新:我已经做了一个示例Web应用程序来显示问题。 可以在以下网址找到该下载:WebApplication1.zip或使用:Download mirror

1 个答案:

答案 0 :(得分:0)

Type targetType = typeof(TypeX);
var control = Page.LoadControl(targetType, null);

您需要在页面中使用此代码。