在app.config中使用Expression

时间:2013-05-16 19:31:07

标签: vb.net expression app-config

我在项目的属性:

下的“设置”页面上添加了一个用户设置

enter image description here

我想要做的是将默认值设置为指向用户的MyDocuments文件夹的子目录的表达式:

String.Format("{0}\XML Cache", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments))

我知道此设置会在app.config文件中写入一个条目,即XML。有没有办法将此值标记为表达式而不是字符串?我想避免使用反射将字符串转换为表达式。

1 个答案:

答案 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)。