我密切关注了链接C# - Correct Way to Load Assembly, Find Class and Call Run() Method,并获得了动态加载程序集类的代码。
Assembly assembly = Assembly.LoadFile(assemblyName);
Type type = assembly.GetType(className);
object objCustomClass = Activator.CreateInstance(type) as object;
其中assemblyName& className来自数据库
但我需要从数据库加载usercontrol类。我没有组装,因为用户控件在UI本身。怎么办呢?
编辑:我正在改变我的问题。现在我将用户控制文件存储在某些其他位置可能在blob存储或其他一些地方。 (不在我的项目工作空间中)并且我将用户控件的url存储在数据库中。现在如何将此用户控件加载到我的网页?
我可以在所有用户控件中创建一个dll并完全按照上面的代码加载吗?
答案 0 :(得分:0)
是的,只需在需要时务实地创建UI控件的对象,并使用this.Controls.Add(cbName);
方法来执行此操作。
请查看this link了解详情
答案 1 :(得分:0)
您可以使用以下两种方法之一
您始终可以让用户控制自定义控件。他们将为您提供一个程序集,您可以将其存储在数据库中。
否则,如果你想动态加载usercontrols,你可以在你的数据库上存储usercontrol('\ _controls \ usercontrol.ascx')的路径,并且可以像任何其他控件一样动态加载它
答案 2 :(得分:0)
您使用MyControl control = (MyControl)Page.LoadControl("mycontrolname.ascx")