我有一組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