我的ASP.NET网站 网站 的根文件夹中有一个PlannerShiftView用户控件。在我的App_Code文件夹中,我有一个ShiftViewTemplate类,需要实例化PlannerShiftView(对于GridView中的TemplateField)。问题是,以下代码无法编译,因为PlannerShiftView类型在我认为的App_Code“幻像命名空间”中不可用。
请有人解释一下这里发生了什么,以及该怎么做。我知道我可以将ShiftViewTemplate从App_Code中移出,违背惯例而不需要解释,但这是一个空洞的胜利。
答案 0 :(得分:2)
ASP.Net网站不会编译成单个程序集,而是编译成几个程序集。因此,用户控件的代码无法通过App_Code程序集引用。
我解决类似案件的方式:
在App_Code或外部程序集中声明IPlannerShiftView接口
将PlannerShiftView控件声明为实现IPlannerShiftView接口
使用Page.LoadControl实例化控件,并转换为界面