C# - 查找数据库中的条目并动态加载用户控件

时间:2011-08-24 09:26:55

标签: c# .net reflection

我密切关注了链接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并完全按照上面的代码加载吗?

3 个答案:

答案 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")