CodeBehind类无法访问App_Code文件夹中的代码

时间:2010-01-31 07:51:45

标签: asp.net

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

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

1 个答案:

答案 0 :(得分:2)

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

我解决类似案件的方式:

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

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

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