我有以下情况。我的应用程序中有一个非常常见的类,其中包含一个名为“ BinDirectory”的静态只读字段,该字段包含bin目录的路径。此类中的其他字段(也是静态只读)也使用此值作为其值的基础。在当前版本上,BinDirectory初始化为包含代码运行所在的目录(即Assembly.GetExecutingAssembly()。CodeBase)。我想扩展该类以初始化BinDirectory,以在从我的应用程序安装程序运行该文件时从安装程序上下文中保存“ TargetDir”。我可以将BinDirectory更改为完全静态的,但我不想这样做,因为这会使我对我的应用程序中常见的类进行大量更改。有人可以为这个问题提出一个优雅的解决方案吗?

最佳答案

这就是AppConfig的用途。在您的AppSettings部分中,添加一个名为BinDirectory的新密钥。您可以将类重写为:

public static string BinDirectory
{
    get
    {
        return ConfigurationManager.AppSettings["BinDirectory"];
    }
}


最后,作为安装过程的最后一步之一,您可以将BinDirectory更改为指向所需的任何目录。因此,此值现在完全由安装程序上下文确定。

关于c# - 关于C#静态只读成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2140022/

10-12 02:10