0

在一个项目中,我有 2-3 个类具有指向我的本地文件系统文件夹的路径。如下所示:

第一类:

 private static string UPLOAD_ROOT = "~/Uploads/";
 private static string IMAGES_FOLDER = "Images";

第 2 类:

 private static string UPLOAD_ROOT = "~/Uploads/";
 private static string PSD_FOLDER = "Generated PhotoShop PSDs";

所以,正如我们所见,UPLOAD_ROOT 在我需要的地方重复。我想将这些路径保存在一个文件中。我该怎么做?

我可以看到的可能解决方案是将这些文件放在一个静态类中并按如下方式使用它:

public static class PathSettings
{
   public static string UPLOAD_ROOT = "~/Uploads/";
   public static string IMAGES_FOLDER = "Images";
   public static string PSD_FOLDER = "Generated PhotoShop PSDs";

}

然后使用这个类如下:

file.SaveAs(PathSettings.UPLOAD_ROOT + filename);

那我应该怎么保存呢?使用静态类是最好的解决方案吗?CMS 中使用什么?

4

3 回答 3

2

将它们作为设置放在您的 web.config 中。这可以通过 Visual Studio 中的编辑器完成:右键单击项目,选择属性。选择左侧的“设置”选项卡。或者,在项目下的“属性”文件夹中(在解决方案资源管理器中)应该有一个可以双击的设置文件。

您可以使用 Properties.Settings.Default.WhateverSettingName 访问此处的值。

此外,为了获得额外的功劳,请从您的字符串中创建一个 Path 对象,并在系统的其余部分中使用它。

于 2013-04-18T03:05:24.840 回答
1

带有常量的静态类是完全有效的。这种方法的主要缺点是在移动目录的情况下需要重新编译应用程序。

因此,您可以考虑将常量移出到应用程序的web.config文件中。当您需要找出值时,只需将其从web.config文件中拉出,如本答案所示:

在 Web.Config 文件中声明一个字符串

(不确定字符串中~是否允许使用web.config。阅读后很容易将其添加。)

编辑:

CMS一般使用配置文件来存储这些路径,然后使用一个普通的静态库来拉回路径信息。通常有一些用户界面供管理员更改路径,进而编辑充满路径信息的文件。

于 2013-04-18T03:00:35.593 回答
1

如果这些常量值根据操作系统、语言等发生变化,您最好使用资源文件来存储常量。

当您从字符串生成路径或 URI 时,最好使用Path Class和的方法Uri Class

于 2013-04-18T03:06:23.783 回答