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