在编译时替换 const 值

Mat*_*ágl 2 c#

我正在寻找一种在编译时读取文件内容并用它替换 const 值的方法:

public class MyClass {
  
 [LoadFromFile("/myFile.txt")]
 public const string MyConst = "";

}
Run Code Online (Sandbox Code Playgroud)

这将读取相对于工作目录的目录中的文件内容myFile.txt(可能使用File.ReadAllText或其他任何内容),该文件的内容可以是例如:

Hello world
Run Code Online (Sandbox Code Playgroud)

并且在编译后的汇编中将MyClass.MyConst返回Hello world.

研究引导我访问https://github.com/Fody/Fody并进行“组装编织”。您将如何解决这个问题?是否还有其他现成可用的解决方案?我正在使用.NET 5。

xan*_*tos 5

我会使用嵌入式资源,然后制作MyConst一个

public static readonly string MyConst = ReadResource("MyFile.txt")
Run Code Online (Sandbox Code Playgroud)

请参阅如何读取嵌入的资源文本文件(请注意,ReadResource可以在响应中进行static)。

我认为为这样的事情浪费时间,包括福迪(并研究它,并通过版本跟踪它)是愚蠢的。