在App_Code类中转换ascx

DEH*_*DEH 2 asp.net casting ascx app-code

我有一个ascx,我想从App_Code中的类加载和转换.我无法从App_Code类开始工作,尽管我可以从aspx页面开始工作.

ASPX页面技术可以正常使用以下代码:

pc = LoadControl("enquirycapture.ascx");
((ASP.enquirycapture_ascx)pc).CustomProperty = customObject;
Run Code Online (Sandbox Code Playgroud)

(注意:我在aspx页面中有以下内容:)

<%@ Reference VirtualPath="~/enquirycapture.ascx" %>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从App_Code类中转换控件时,它无法"看到"ascx类,因此我无法强制转换为设置自定义属性(我可以加载它,但不能转换它) .我不知道如何从App_Code类中复制<%Reference ...>的东西.任何人都知道如何从App_Code类中引用(并因此强制转换)我的ascx?谢谢.

Ale*_*lex 6

App_Code 编译为无法引用CodeFile中的类型的单独程序集.

但是您可以将interface/base类添加到您的App_Code文件夹中,该文件夹标识您要在usercontrol中实现的自定义属性和方法:

public class EnquiryCaptureBase : System.Web.UI.UserControl
{
    public object CustomProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后

public partial class EnquiryCapture : EnquiryCaptureBase
{

}
Run Code Online (Sandbox Code Playgroud)

最后在某处App_Code:

pc = LoadControl("enquirycapture.ascx");
((EnquiryCaptureBase)pc).CustomProperty = customObject;
Run Code Online (Sandbox Code Playgroud)