[英]Accessing a Class that is NOT declared in App_Code in ASP.NET
有時,我定義業務邏輯類來“幫助”我的ASPX代碼隱藏類。 對我來說,將它們都包含在代碼隱藏文件中是最有意義的,因為它們可以一起工作。 但是,我偶爾希望從App_Code中定義的更高級別的類訪問Business Logic類,但是不能在文件外部自動訪問它們。
因此,出現了一個問題:訪問App_Code中定義的類很容易,但是如何訪問其他地方定義的類呢?
更新:另一件事,ASPX頁面類和App_Code類在同一個命名空間中-這不是問題。
注意:我已聽取了那些已做出答復(感謝伙計們)並正在進行重構的人員的建議,以簡化班級訪問。 但是,我認為問題尚未真正得到解決(以ASP.NET網站項目為例)。 我不再需要答案了,但是,如果有人可以澄清是什么使類在App_Code之外時可見,那么它很可能會幫助其他人(甚至我,在路上)。
確保將類放置在合理的名稱空間中。
在代碼中將“ using”關鍵字放在要訪問它們的文件后面。
或<%@ import(如果您在內聯代碼中使用它們)。
將包含您的類的dll放在/ bin文件夾中。
TBH我更喜歡將單獨的庫項目保留在相同的解決方案中,並在Web probject中具有項目引用。 VS為您處理構建和放置dll的過程。
在創建或添加任何文件的某個時間,它已經被創建為內容文件,而必須是編譯文件。
請按照以下過程解決此問題。
1)右鍵單擊App_Code文件夾中的類文件。 2)點擊屬性。 3)將“構建操作”從“”更改為“編譯”。4)重建應用程序。
塔沙爾·柳吉
我假設您的意思是您是在.cs文件背后的代碼中定義一個單獨的類? 您要給他們哪些訪問修飾符?
如上所述,盡管如此,我在解決方案中通常會有一個單獨的項目(通常在MyApp.Web和MyApp。等不同的命名空間中),然后從那里引用它。
您也可以只在項目中創建一個標准文件夾來訪問類,然后將它們移到那里,但是您還需要做一些其他事情以使項目可以訪問它:
您不能從.net dsnt支持多重繼承的文件后面的同一代碼中的另一個類訪問另一個類。 但是您可以在主類中將業務邏輯類創建為內部類,並將其所有功能公開,以便可以在主類中調用它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.