c# - 如何使用文件名从程序集中加载用户控件?

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

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

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

非常感谢...

最佳答案

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

有多个 hacks float 让您可以通过反射并将 .ascx 文件作为资源嵌入来完成此操作。

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

关于c# - 如何使用文件名从程序集中加载用户控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1912192/

相关文章:

c# - LINQ 左连接可空列给出空引用异常

asp.net - 反CSRF cookie?

c# - 如何读取.Doc模板文件并使用值编辑模板?

asp.net - Firefox 4.0 始终刷新 Silverlight XAP 文件

c# - 如何使用 C# 评估 html 复选框?

检查 Active Directory 域 Controller 是否已启动并正在运行的 C# 方法

c# - 获取时区的日期时间偏移

用于在不同程序集中定义的类型的 WPF 工具箱安装程序

WPF:将画笔恢复为默认/原始

wpf - Loaded 之后和显示用户控件之前是否有任何事件?