从完全限定的路径创建WebControl(程序集名称?)

时间:2010-03-02 18:13:55

标签: asp.net reflection fully-qualified-naming

我在ASP.NET 3.5中有一个动态创建WebControl的网页。它将创建的WebControl将通过其完全限定的路径(即 - System.Web.UI.WebControls.whatever)来了解。这是因为我允许用户决定在网页上进行哪些控制。当然,复杂性比这更复杂,但简而言之就是这样。

简单地说 - 如何通过完全合格的路径在网页上创建WebControl?

我意识到答案可能会最终使用反射,但我没有使用反射的经验,我不想通过制造新手的错误射击自己。

2 个答案:

答案 0 :(得分:3)

尝试这样称呼:Activator.CreateInstance(Type.GetType("TypeName"));

其中TypeName为完全限定名称,包括程序集。就我而言,它看起来像这样:

Activator.CreateInstance(Type.GetType("System.Web.UI.WebControls.Label, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"));

要确保您的案例中的全名,请尝试输出typeof(System.Web.UI.WebControls.Label).FullName并将其用作模式

答案 1 :(得分:1)

object widget = Activator.CreateInstance ( Assembly.GetType ( name ) );

其中name是完全限定类型的字符串