在一个项目中,我有2-3个类,其中包含指向本地文件系统文件夹的路径。如下所示:
第1课:
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);
我应该如何储存呢?使用静态类是最佳解决方案吗? CMSes中使用了什么?
答案 0 :(得分:2)
将它们作为web.config中的设置。这可以通过visual studio中的编辑器完成:右键单击项目,选择属性。选择左侧的“设置”选项卡。或者,在项目下的“属性”文件夹中(在解决方案资源管理器中),应该有一个可以双击的设置文件。
您可以使用Properties.Settings.Default.WhateverSettingName访问此处的值。
另外,要获得额外的功劳,请从字符串中创建一个Path对象,并在系统的其余部分使用它。
答案 1 :(得分:1)
带有常量的静态类是完全有效的。这种方法的主要缺点是,在移动目录的情况下需要重新编译应用程序。
因此,您可以考虑将常量移到应用程序的web.config
文件中。当您需要计算出值时,只需将其从web.config
文件中拉出来,如下面的答案所示:
Declare a string in Web.Config file
(不确定~
字符串中是否允许web.config
。阅读后很容易解决它。)
编辑:
CMS通常使用配置文件来存储这些路径,然后使用公共静态库来回退路径信息。通常,管理员可以使用一些UI来更改路径,从而编辑完整路径信息的文件。
答案 2 :(得分:1)
如果这些常量值基于操作系统,语言等发生变化,最好选择资源文件来存储常量。
当您从字符串生成路径或URI时,更好地使用Path Class
和Uri Class
的方法