我想从我的" .DLL"加载我的用户控件文件。这是我的代码。 我的用户控件在注册标签设计时工作正常,但在运行时我看到错误。
// load the assembly
System.Reflection.Assembly assembly =
Assembly.LoadFrom( Server.MapPath("~/bin/ActivePage.Coms.DLL"));
// get the type
Type t = assembly.GetType(name);
// create an instance and add it.
//
Control c = (Control)Activator.CreateInstance(t);
if (c != null)
{
Response.Write(c.ClientID);
PlaceHolder1.Controls.Add(c);
}
但是看到这是错误
Server Error in '/' Application.
对象引用未设置为对象的实例。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.NullReferenceException:未将对象引用设置为对象的实例。
来源错误:
在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。
堆栈追踪:
答案 0 :(得分:0)
当您传递用户控件名称以汇编此行时;
Type t = assembly.GetType(name);
你必须在我的代码中用名称空间示例写出全名:
Type t = assembly.GetType("ASP.uc_contactform_ascx");
我使用此行传递路线数据中的名称:
string name = Page.RouteData.Values["name"].ToString();
将url usercontrol name更改为full(" ASP.uc_contactform_ascx")后,我的页面工作正常,并从dll assemple中加载运行时用户控件。
在asp.net开发中与我联系。 tehhitech [at] live .com,skype = tarraharshad