我想在编译期间将文件中的文本加载到类上的属性中。
示例 -
我有一个名为 banana.txt 的文件,我想在编译期间将其内容放入Banana
类。
public class Banana
{
public string Text { get; set; } //contents of banana.txt goes in here
}
如何做到这一点?
这样做的目的是每次需要Banana
对象Text
时,不必读取文件,只需要读取文件中的文本一次在编译期间。
(注意:我必须从文件中读取内容,而不是将内容复制到变量或资源文件中。我意识到每个Banana
对象都会有相同的文字。)
答案 0 :(得分:0)
实现这一目标的一种方法是: 编写预构建事件。 在预构建事件中,调用程序。 该程序可以是另一个C#程序 该程序将从banana.txt中读取。 然后该程序将重新生成您的源代码。
例如。如果您的代码为:
public string Text = "~placeholder_for_Text~"
程序会将“~placeholder_for_Text~”替换为banana.txt的实际内容
答案 1 :(得分:0)
如果在运行时只加载文件内容一次,您可以考虑使用以下代码:
public class Banana
{
public string Text
{
get
{
return fileContent;
}
}
private static string fileContent;
static Banana()
{
using (var reader = File.OpenText("banana.txt"))
{
fileContent = reader.ReadToEnd();
}
}
}