我在与项目相同的文件夹中有一些JSON文件,可以使用C#(.NET Core 3.1)应用程序从磁盘读取这些文件,我想在运行时读取它们,但将整个解决方案编译为一个可执行文件。
我相信使用.NET Framework中的嵌入式资源可以实现类似的效果,但是我可以使用在VS for Mac中开发的.NET Core应用程序实现这一点吗?
该解决方案类似于this答案,对于VS Mac和.NET Core 3.1只是稍有不同。
通过将文件添加到C#项目中,然后将其生成操作设置为“嵌入式资源”,达到了我想要的目的。它位于VS for Mac 2019中:
要阅读它们,语法(假设您与文件位于同一项目的类中:)
var assembly = typeof(MyClass).Assembly;
Stream myFile = assembly.GetManifestResourceStream("MyProject.MyFolder.MyFile.json");
// To get the text as a string
var sR = new StreamReader(myFile);
var myFilesText = sR.ReadToEnd();
sR.Close();
如果不确定它们的名称,可以使用以下方式列出资源:
string[] names = assembly.GetManifestResourceNames();