2011-07-20 22 views
0

我使用的.NET 4框架,我有一個static classstatic functions在一個asp.net的Web應用程序。不能從不同的類庫調用靜態類?

我有第二個類庫項目。類庫項目想調用Web應用程序中的靜態方法。智能感知工作,但編譯器報告

「名稱[MyClassName]在當前上下文中不存在」。

我可以打這個電話,還是這個不允許?

PS,靜態類位於/App_Code文件夾中。

謝謝!

+0

如果您將該類添加到Web應用程序(不是網站項目)的App_Code文件夾中,則需要右鍵單擊並將屬性更改爲編譯(默認情況下它會添加爲內容)。另外,如果您要從Web應用程序到Web應用程序的類庫,您將以循環引用結束。 – Phill

回答

1

是不是可以重構類的Web項目?從類庫引用Web項目聽起來很尷尬。如果您的課程不包含特定於網絡的代碼,那麼您可以將其彈出到您提及的其他課程庫中,或者創建一個新的課程庫。它應該引用網絡特定的庫,像MyProject.MyLib.Web可以做到這一點。

+0

優點。我使用的是第三方CMS,並沒有考慮我在更大範圍內做什麼。無論哪種方式,我猜這個問題與靜態類不包含在命名空間中有關。這是否意味着它無法訪問? – Hoppe

0

您需要添加對包含要訪問的類的項目的引用。

+0

我確實有一個參考項目 – Hoppe

+0

優點。我使用的是第三方CMS,並沒有考慮我在更大範圍內做什麼。無論哪種方式,我猜這個問題與靜態類不包含在命名空間中有關。這是否意味着它無法訪問?謝謝! – Hoppe

+1

它必須位於命名空間中。但是,如果它是「內部」,則無法訪問。 –

0

您需要確保您使用的是類的全名(包括名稱空間)。

或者在您的代碼文件中添加一個帶名稱空間的using directive

+0

靜態類未包裝在名稱空間中。這是否意味着它無法訪問?它是第三方CMS的一部分,我不確定將它包含在名稱空間中會有什麼影響,因爲它已經被大量使用。謝謝! – Hoppe

+1

@Joe - 當然它是可訪問的,否則你將如何使用它。它將位於全局名稱空間中,並且_can_可以使用全局名稱空間的['global ::'](http://msdn.microsoft.com/en-us/library/c3ay4x3d.aspx)語法進行別名和訪問。 – Oded

0

如果您的目標框架是.Net Framework 4.0 Client Profile將其更改爲.NET Framework 4並重新構建解決方案。

相關問題