這可能是一個很蹩腳的問題,我對ASP.Net缺乏瞭解。在這種情況下,鏈接到文章解釋將是非常受歡迎的。在ASP.NET中共享幾頁之間共同功能的方法
我正在使用C#作爲代碼隱藏在ASP.NET上的網站上工作。我目前的項目涉及開發功能非常類似的幾頁,許多功能都是一樣的。例如
在2頁上是相同的。其他一些事情也是一樣的。我想把它放到共同的基類中。但也有不真正屬於網頁的所有其他功能:
private string GetAttachmentTempPath()
{
return Request.PhysicalApplicationPath + WebConfigurationManager.AppSettings.Get("AttachmentsTempFolder");
}
我想這遷入Attachment
類,但要獲得應用程序的物理路徑,我需要在Request對象傳遞進入該方法,這並不是很好,因爲它將Attachment
類與Page.Request
對象結合在一起。
有沒有什麼辦法可以將這些功能移到別的地方而不需要通過Page.Request
對象?
p.s.應用程序是巨大的,並且沒有改變整個架構的餘地。
你仍然可以把它放在Attachment類中;附件類的方法可以是:私人靜態字符串GetAttachmentTempPath(字符串appPhysicalPath) - 那麼你可以簡單地從你的項目中的任何地方調用它 - 字符串attachmentTempPath = GetAttachmentTempPath(Request.PhysicalApplicationPath);這樣,用於處理附件的代碼全都存在於attacment類中,但是當您需要時將實際的數據傳遞給它(您在初始化類時甚至可以執行此操作)。 – dash
傳遞對象實際上*低*耦合比依靠HttpContext,恕我直言。 – sq33G
順便說一句,如果您使用的網站項目微軟的官方建議是:http://msdn.microsoft.com/en-us/library/t990ks23.aspx – dash