我在项目的属性:
下的“设置”页面上添加了一个用户设置
我想要做的是将默认值设置为指向用户的MyDocuments文件夹的子目录的表达式:
String.Format("{0}\XML Cache", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments))
我知道此设置会在app.config文件中写入一个条目,即XML。有没有办法将此值标记为表达式而不是字符串?我想避免使用反射将字符串转换为表达式。
答案 0 :(得分:0)
这是我的建议:
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
设置。
上面的代码段会检查设置值是否以#
开头。如果是,它将假设您的设置指向Environment.SpecialFolder
枚举名称,并以与您在上面发布的方式相同的方式返回目录(使用Environment.GetFolderPath
)。