C# 找不到类?
我有一个asp.net网站项目,正在迁移到Web应用程序项目。此项目中的大多数表单都是从基类派生的,但由于迁移后的某些原因,找不到基类。我的基类位于以下文件夹中:C# 找不到类?,c#,asp.net,.net,visual-studio,C#,Asp.net,.net,Visual Studio,我有一个asp.net网站项目,正在迁移到Web应用程序项目。此项目中的大多数表单都是从基类派生的,但由于迁移后的某些原因,找不到基类。我的基类位于以下文件夹中:App\u code/BaseClasses/BasePage.cs,定义如下: //more stuff above using System.Web; public class BasePage : Page { public BasePage() { } protected override vo
App\u code/BaseClasses/BasePage.cs
,定义如下:
//more stuff above
using System.Web;
public class BasePage : Page
{
public BasePage()
{
}
protected override void OnInit(EventArgs e)
{
//whatever
}
//some other stuff
}
我的表单位于多种文件夹中,它们使用基类,如下所示:
//More stuff above
using System.Web;
//Derived from base page
public partial class Reports_Uploads : BasePage
{
//a bunch of stuff
}
每当我尝试从基页派生时,都会出现以下错误:
错误166找不到类型或命名空间名称“BasePage”
(是否缺少using指令或程序集引用?)
我尝试将两者包装在同一个名称空间中,但没有任何区别。尝试编译时,
BasePage
上没有任何错误。有人知道为什么会这样吗 尝试在开头添加一个using语句,比如using System.Web行
或许可以尝试以下方法:
using App_Code.BaseClasses.BasePage; (NOTE: this may change depending on your file structure)
好的-看起来我需要在整个项目上执行“转换为Web应用程序”,以便识别我的基类。我看到的许多旧的说明都说右键单击项目,然后单击“转换为Web应用程序”,但在使用Visual Studio 2013时,这不是一个选项。我必须:
Project->转换为Web应用程序
App\u code
文件夹更改为Old\u App\u code
,然后到处都可以识别基类。我不需要添加名称空间或任何东西
希望这对别人有帮助 没有骰子-我还尝试使用intellisense查看是否有可能包含该类的候选者,但没有任何候选者。您的表单和基类都在同一个项目中吗?或者在同一个解决方案下单独的项目?都在同一个项目中HMMMM,那么您是否尝试添加using指令,是否尝试添加程序集引用?看起来很奇怪,因为它们在同一个项目中,它们是在不同的名称空间下吗?一个项目甚至可以添加对自身的引用吗?似乎是循环的。BasePage
是包含在项目中还是仅包含在文件夹中?i、 您是在项目中的Visual Studio中看到它,还是只是复制了文件?另外,它们现在是否在名称空间中(并且是同一名称空间)?只是澄清一下-您问的是,它是否确实“包含”在visual studio项目中,是否正确(而不仅仅是放在文件系统上)?如果这就是你要问的,那么是的,包括在内。这就是为什么我知道在编译时没有任何错误。关于名称空间问题,我认为你可能是对的,但我不是肯定的。如果是这种情况,我将在以后添加它,但是对于我当前的问题-将基类和派生类包装在同一名称空间中应该修复“BasePage”找不到的问题
我得到的错误,对吗?假设您单击F12(“转到定义”)时在BasePage上的以下行:public partial class Reports\u Uploads:BasePage
,它向您显示了该类-也许您需要做的就是清理解决方案并重新构建它。@您以前的注释-据我所知-正确。+1。环顾四周,似乎App_代码中的文件标记了web应用程序的错误构建操作。(快读,我可能错了。)