我有一堆默認的字符串和整個應用程序的整數。比如默認名稱等等。這些都是常數。我只想在我的應用程序的不同頁面中訪問它們。什麼是放置它們的最佳地點?我在想Enum或類似的東西。什麼是最好的方法?在哪裏存儲默認值asp.net
1
A
回答
2
最好的地方是將它們放到你的web.config文件的appSettings部分:
<appSettings>
<add key="myKey" value="myValue"/>
</appSettings>
然後,您可以讀取使用ConfigurationManager類的鍵/值對:
' Get the AppSettings section.
' This function uses the AppSettings property
' to read the appSettings configuration
' section.
Public Shared Sub ReadAppSettings()
Try
' Get the AppSettings section.
Dim appSettings As NameValueCollection = _
ConfigurationManager.AppSettings
' Get the AppSettings section elements.
Console.WriteLine()
Console.WriteLine("Using AppSettings property.")
Console.WriteLine("Application settings:")
If appSettings.Count = 0 Then
Console.WriteLine(_
"[ReadAppSettings: {0}]", _
"AppSettings is empty Use GetSection first.")
End If
Dim i As Integer = 0
While i < appSettings.Count
Console.WriteLine(_
"#{0} Key: {1} Value: {2}", _
i, appSettings.GetKey(i), appSettings(i))
System.Math.Max(_
System.Threading.Interlocked. _
Increment(i), i - 1)
End While
Catch e As ConfigurationErrorsException
Console.WriteLine("[ReadAppSettings: {0}]", _
e.ToString())
End Try
End Sub
0
我保持這樣的事情在項目的設置區域(項目屬性 - >設置),然後訪問它們在我的代碼My.Settings.<TheSettingName>
在一個強類型的莊園。
另外,作爲獎勵,它會將這些設置中的每一個放在web.config
文件中,然後我可以在運行時根據需要更改它們的值,而無需重新編譯/部署。
這樣做的缺點是My.Settings.<...>
不適用於view/aspx。因此,對於我在視圖中需要的值,我將它們包裝在訪問器模塊中。例如。
Public Module ScriptReferences
Public Function JQueryJsUrl() As String
Return My.Settings.JQueryJsUrl
End Function
End Module
然後在視圖/ aspx中,您可以簡單地撥打ScriptReferences.JQueryJsUrl
以獲得您的價值。
+0
是的,我記得我曾經使用過這個東西,但是無法在網絡應用上找到它。 – user194076
0
最好的方法是有某種定義文件。但是,要小心處理方法,因爲如果不斷向其添加隨機常量,您可以輕鬆獲得難以管理的定義文件。
1
你可以簡單地用每個公共常量創建一個靜態類。
static public class DefaultValues
{
public const string Name = "Bob";
public const int AppId = 1234;
}
0
我通常創建一個常量類或其他一些適當命名的靜態類,然後把各種常量的靜態獲取只有屬性。
public static string ConstantString { get {return "Hello World"; } }
0
你也可以使用App_GlobalRessource和資源文件...這樣可以很容易地維護這些常量。
相關問題
- 1. Sentry在哪裏存儲默認域?
- 2. 默認值:它們在哪裏存儲在數據庫Odoo上?
- 3. IDEA運行/調試配置*默認值*存儲在哪裏?
- 4. 默認值存儲
- 5. .data()在哪裏存儲值?
- 6. 我在哪裏可以將默認圖像存儲在android
- 7. 默認的asp.net web應用程序/數據庫存儲在哪裏?
- 8. 你在哪裏存儲默認圖像在android的內部存儲?
- 9. MVC3默認模板存儲用戶帳戶信息在哪裏?
- 10. C#中組件的默認圖標存儲在哪裏?
- 11. 默認的android「向上按鈕」圖標存儲在哪裏?
- 12. Redmine默認優先級名稱存儲在哪裏
- 13. Google應用程序默認憑證存儲在哪裏?
- 14. WCF中存儲的默認協議映射在哪裏
- 15. Eclipse ADT在哪裏存儲默認密鑰庫路徑?
- 16. 默認collectd pluggindir在哪裏?
- 17. ASP.NET和Neo4jClient - 在哪裏存儲連接?
- 18. ASP.NET身份 - 鹽在哪裏存儲?
- 19. ASP.NET MVC - HttpContext.Current在哪裏存儲?
- 20. ASP.NET存儲用戶數據在哪裏?
- 21. 在哪裏實際存儲asp.net mvc httpcookies?
- 22. NSXMLParser:哪裏存儲值?
- 23. 存儲過程默認值
- 24. 存儲沒有默認值
- 25. 存儲過程默認值
- 26. Sparkle在哪裏保存其偏好/默認值?
- 27. ASP.NET MVC中配置的默認認證路由在哪裏?
- 28. 哪裏是默認片段存儲爲MonoDevelop OS X
- 29. Tridion存儲元數據值在哪裏?
- 30. 存儲的OID MIB值在哪裏?
「最好」 - 不一定。但肯定是一個有效和成功的選擇。 – ckittel
True - 可能不是最快的,但它具有靈活性:如果值發生更改,則不需要重新編譯,並且可以爲dev/QA/production自定義web.config文件。 –
對於「不重新編譯,如果值發生了變化」,.Net會很高興地重新編譯網站,它會改變web.config ...一個更好的短語是「如果值發生變化,就不會重新部署代碼」 – NotMe