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

发布于 2024-08-23 16:36:21 字数 289 浏览 4 评论 0原文

我有一个 ASP.NET 3.5 网页,它将动态创建 WebControls。它将创建的 WebControls 将通过其完全限定路径(即 - System.Web.UI.WebControls.whatever)得知。这样做的原因是因为我允许用户决定网页上将显示哪些控件。当然,还有比这更复杂的事情,但简而言之,就是这样。

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

我意识到答案可能最终会使用反射,但我没有使用反射的经验,我不希望犯新手错误,搬起石头砸自己的脚。

I have a webpage in ASP.NET 3.5 that will be creating WebControls dynamically. The WebControls that it will be creating will be known by their fully qualified path (ie - System.Web.UI.WebControls.whatever). The reason for this is because I am allowing the user to decide what controls will go on the webpage. Of course, there's more complexity than this, but that is it in a nutshell.

Simply put - how do I create a WebControl on a webpage by it's fully qualified path?

I realize that the answer will probably end up using reflection, but I have little experience using reflection and I don't want to shoot myself in the foot by making a newbie mistake.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

茶色山野 2024-08-30 16:36:21

尝试以这种方式调用: 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 并将其用作模式

try to call this way: Activator.CreateInstance(Type.GetType("TypeName"));

where TypeName is fully qualified name, including assembly. in my case it looked this way:

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

to be sure about full name in your case, try to output typeof(System.Web.UI.WebControls.Label).FullName and use it as a pattern

爱你是孤单的心事 2024-08-30 16:36:21
object widget = Activator.CreateInstance ( Assembly.GetType ( name ) );

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

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

where name is the string of the fully qualified type

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文