C# - class 的相对路径

C# - Relative path of class

试图获取配置文件的相对路径,它位于核心项目中的 class 旁边,并且还试图避免硬编码相对路径(即“../../../seleniumconfig.json")

这是我的项目结构,

Program.cs(在 Awesome.OtherProject1 中)

using (var scope = Container.BeginLifetimeScope())
{
    var selenium = scope.Resolve<ZSelenium>();
    ...
}

ZSelenium.cs

var rootDir = new DirectoryInfo(Environment.CurrentDirectory);
  // "/users/myuser/Documents/MyProject/AwesomeProject.OtherProject"

我可以从 rootDir 变量构造我的相对路径,但是会有很多我想避免的硬编码 ../../.. 东西。此外,如果我从另一个项目调用 ZSelenium.cs,相对路径可能会改变。

有谁知道在核心项目中获取 ZSelenium.cs 路径的更好方法吗?

配置文件永远不属于 Programm 文件夹。无论如何,我们确实在 Windows 98 次中这样做了,但当时不赞成这样做。由于 XP 不再可靠地编写这样的配置文件。 Programm 文件夹受到保护。出于安全原因,大多数用户只能读取它们而不能写入它们。这也包括该用户启动的任何程序。

如果您想存储用户或系统的特定设置,这就是 special folders 的用途。他们的一个明确目的是,无论用户运行您的程序,都应该具有对他自己的文件夹和所有共享文件夹的读取(并且可能写入)访问权限。

您可以将 "default configuration" 添加到 Programm 目录以用作新用户的模式。但即便如此,也有一个现有结构(默认用户文件夹),因此您可以将模板放置到设置中。