0

我在项目属性下的设置页面上添加了一个用户设置:

在此处输入图像描述

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

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

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

4

1 回答 1

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

于 2013-05-16T20:07:39.357 回答