我在整个应用程序中都有一堆默认字符串和整数。比如默认名称等等。这些都是常数。我只想在我的应用程序中的不同页面中访问它们。放置它们的最佳位置是什么?我在考虑Enum或类似的东西。什么是最好的方法?
答案 0 :(得分: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
答案 1 :(得分:1)
您可以使用每个公共const创建一个静态类。
static public class DefaultValues
{
public const string Name = "Bob";
public const int AppId = 1234;
}
答案 2 :(得分:0)
我在项目的“设置”区域(项目属性 - &gt; 设置)中保留这样的内容,然后在我的代码中以My.Settings.<TheSettingName>
的形式访问它们强烈的庄园。
同样作为奖励,它将每个设置放在web.config
文件中,然后我可以在运行时根据需要更改其值,而无需重新编译/部署。
这样做的缺点是My.Settings.<...>
在视图/ aspx中不可用。因此,对于我在视图中需要的值,我将它们包装在一个访问器模块中。 E.g。
Public Module ScriptReferences
Public Function JQueryJsUrl() As String
Return My.Settings.JQueryJsUrl
End Function
End Module
然后在view / aspx中,您只需致电ScriptReferences.JQueryJsUrl
即可获得您的价值。
答案 3 :(得分:0)
最好的方法是拥有某种定义文件。但是,请小心处理方法,因为如果不断添加随机常量,就可以轻松获得无法管理的定义文件。
答案 4 :(得分:0)
我通常创建一个常量类或其他一些适当命名的静态类,然后为各种常量添加静态get only属性。
public static string ConstantString { get {return "Hello World"; } }
答案 5 :(得分:0)
您也可以将App_GlobalRessource与资源文件一起使用......这样可以轻松维护这些常量。