Vb.net 在app.config中使用表达式
我在项目属性下的“设置”页面上添加了一个用户设置: 我要做的是将默认值设置为指向用户MyDocuments文件夹子目录的表达式:Vb.net 在app.config中使用表达式,vb.net,expression,app-config,Vb.net,Expression,App Config,我在项目属性下的“设置”页面上添加了一个用户设置: 我要做的是将默认值设置为指向用户MyDocuments文件夹子目录的表达式: String.Format("{0}\XML Cache", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)) 我知道此设置会将一个条目写入app.config文件,即XML。有没有办法将此值标记为表达式而不是字符串?我希望避免使用反射将字符串转换为表达式。以下是我的建议: Publ
String.Format("{0}\XML Cache", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments))
我知道此设置会将一个条目写入app.config文件,即XML。有没有办法将此值标记为表达式而不是字符串?我希望避免使用反射将字符串转换为表达式。以下是我的建议:
Public Function GetCacheBaseDirectory() As String
Dim cacheBaseLocation As String = My.Settings("XMLCacheDir")
If cacheBaseLocation.StartsWith("#") Then ' Hm, it is a SpecialFolder
Dim specialName As String = cacheBaseLocation.Substring(1)
cacheBaseLocation = System.Enum.Parse(GetType(Environment.SpecialFolder), specialName)
End If
Return cacheBaseLocation
End Function
在本例中,您将使用以下值配置XMLCacheDir
设置:#MyDocuments
上面的代码段检查设置值是否以
#
开头。如果是,它将假定您的设置指向环境.SpecialFolder
枚举名称,并以与上面发布的相同方式返回目录(使用环境.GetFolderPath
)。谢谢您的建议。如果我写这篇文章时不需要允许用户重新分配缓存目录,我想这会很好。但是,我希望能够获取并设置目录,它可以指向任何位置。好吧,但即使这样,我的建议仍然有效(在我看来,呵呵):您可以使用所有环境的下拉列表。SpecialFolder
选项让用户选择要存储缓存的特殊文件夹。这个下拉列表可能有一个自定义
选项,用户可以设置任意目录。