我有一组C#文件,用于Web应用程序,我从一个不再处于开发中的开发人员继承。我在Visual Studio 2010中创建了一个解决方案,并将现有文件和子文件夹添加到源代码管理解决方案中。我创建的一个子文件夹称为App_Code,它模仿我们的源代码管理程序中存在的子文件夹。这个子文件夹里面有几个C#类。这些类在代码中位于根文件后面的代码中引用(例如,ActionPage.aspx.cs:),但是没有任何文件后面的代码可以在App_Code中找到这些类。我得到了通常的错误消息,“找不到类型或命名空间'ErrorLogger'[其中一个类](缺少指令或程序集引用?”)App_Code子文件夹看起来不像常规文件夹。我附上一个剪辑,显示它的外观:C#.Net中的子文件夹中的类Visual Studio项目不被代码隐藏在文件后面
。
我怀疑这是一个特殊的Visual Studio文件夹名称。下面是ActionPage的代码的呼唤ErrorLogger(并给上面列出的错误消息)的例子:
ErrorLogger Err = new ErrorLogger();
而这里的ErrorLogger类的样子:
using System;
using System.IO;
using System.Text;
public class ErrorLogger
{
public void Logger(string sPathName, string sErrMsg)
{
//- <--custom date time stamp & format for easy reading
string sLogFormat = DateTime.Now.ToShortDateString().ToString() + " " + DateTime.Now.ToLongTimeString().ToString() + " ==> ";
string sYear = DateTime.Now.Year.ToString();
string sMonth = DateTime.Now.Month.ToString();
string sDay = DateTime.Now.Day.ToString();
//string sErrorTime = sYear+sMonth+sDay;
string sErrorTime = sMonth + sDay + sYear;
//- <--Write error to a file
StreamWriter sw = new StreamWriter(sPathName + sErrorTime, true);
sw.WriteLine("------------------------------------------------------------------------------------------------");
sw.WriteLine(sLogFormat + sErrMsg);
sw.Flush();
sw.Close();
}
}
我错过了什么?
已添加2015年2月24日:我发现了一个不太令人满意的解决方案:我创建了一个新的VS 2010解决方案,然后选择File-> Add-> Existing Web Site。我现在有一个网站代码,而不是一个Web应用程序,但它编译并运行。我认为这是我能做的最好的事情 - 除非任何人有任何其他建议....并且我非常感谢所有的建议,伙计们,相信我。在一个相关主题上,为什么文件 - >新建 - >来自现有代码的项目没有给我一个Web应用程序的选项?雷蒙德,如果你在听,补充一点!
这些类中的命名空间是什么?你无法看到它们的原因很可能是命名空间问题。 – 2015-02-23 21:53:58
查看如何使用'namespace',如果您不熟悉如何查找名称空间或默认命名空间,那么将使您的生活变得轻松许多,或查看如何在您的类听众中使用'using'子句/语句点击项目中的“AAT”并选择属性以查看 – MethodMan 2015-02-23 21:54:12
它看起来不像你的类有一个名称空间,所以它只能被项目中没有名称空间声明的其他类访问。 – Claies 2015-02-23 21:54:59