【问题标题】:how to load usercontrols from the assembly using the filename?如何使用文件名从程序集中加载用户控件?
【发布时间】:2009-12-16 04:03:12
【问题描述】:

我们有一组符合 dll 的用户控件。我们可以通过 ASP.theusercontrol_ascx blah = new ASP.theusercontrol_ascx(); 来使用它们的类名来加载控件

但如果我们有动态数据并根据文件名(或控件名称)加载控件, 我们如何像Page.LoadControl("TheURL/theusercontrol.ascx") 一样加载它们?

非常感谢...

【问题讨论】:

    标签: c# asp.net user-controls assemblies loadcontrol


    【解决方案1】:

    没有真正的正确方法可以做到这一点。 .ascx 文件并不意味着可以以这种方式部署。代码已编译为 .dll,但 .ascx 文件中的实际标记尚未编译。即使您遵循converting .ascx files to deployable controls 上的官方 Microsoft 文档,您也无法根据文件名调用 LoadControl,因为不再有标记文件。

    有许多 hacks 漂浮在周围,让您可以通过反射和将 .ascx 文件作为资源嵌入来实现。

    除此之外,如果您确实需要使用LoadControl(filename),则需要复制 .ascx 文件。

    【讨论】:

    • 如果是这种情况,我们可以实例化用户控件。但问题是我们确实需要使用字符串进行实例化......这里再次进行反射...... =(
    • 哦,好吧,我真的别无选择。反思再次拯救了我的生命。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    相关资源
    最近更新 更多