【问题标题】:CodeBehind class not accessible to code in App_Code folderApp_Code 文件夹中的代码无法访问 CodeBehind 类
【发布时间】:2010-01-31 07:51:44
【问题描述】:

我的 ASP.NET 网站 站点 的根文件夹中有一个 PlannerShiftView 用户控件。在我的 App_Code 文件夹中,我有一个 ShiftViewTemplate 类,它需要实例化一个 PlannerShiftView(对于 GridView 中的 TemplateField)。问题是,以下代码无法编译,因为 PlannerShiftView 类型在我认为是 App_Code 的“幻像命名空间”中不可用。

请有人解释一下这里发生了什么,以及要做什么。我知道我可以将 ShiftViewTemplate 从 App_Code 中移出,违反惯例且无需解释,但这是一场空洞的胜利。

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    ASP.Net 网站不会编译成一个程序集,而是编译成几个程序集。因此,App_Code 程序集无法引用您的用户控件代码。

    我解决类似案例的方式:

    • 在 App_Code 或外部程序集中声明 IPlannerShiftView 接口

    • 将 PlannerShiftView 控件声明为实现 IPlannerShiftView 接口

    • 使用 Page.LoadControl 实例化控件,并转换为接口

    【讨论】:

    • 好主意,但有点工作。可惜我们不得不这样做。现在,我只是将 ShiftViewTemplate 从 App_Code 中取出。毕竟是 UI 代码。
    猜你喜欢
    • 2011-06-27
    • 2013-10-10
    • 2014-06-30
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    相关资源
    最近更新 更多