Die*_*ego 4 c# resources json .net-core
我正在做C#Net Core 2.0应用程序...
我有一个.sln名为PrjA,PrjB,PrjC的几个控制台项目,它们将在不同的端口(端口5000,端口5010,端口5020)中运行。它们由控制台并行运行
C:>dotnet PrjA.dll
C:>dotnet PrjB.dll
C:>dotnet PrjC.dll
Run Code Online (Sandbox Code Playgroud)
我还有另一个图书馆项目PrjCommon,这三个项目都引用了它。在此项目中,我希望所有三个项目都具有一个配置文件。
该文件是一个json名为的文件portsettings.json。
当我在Debug模式下运行任何这些项目或生成时Publish folder,portsettings.json不会保存文件。
在PrjCommonProject中,我尝试将其portsettings.json作为文件嵌入Resources.resx。
从这三个项目中的任何一个,我在PrjCommon中调用了一个应该读取portsettings.json文件的方法。
我试图以两种方式从Resources.resx读取此文件。
首先像这样
var assembly = Assembly.GetEntryAssembly();
string[] names = assembly.GetManifestResourceNames();
Run Code Online (Sandbox Code Playgroud)
但names为空。
第二
var byteArray = Resources.portsettings;
Run Code Online (Sandbox Code Playgroud)
那返回一个字节数组,但是我不能将那些字节数组转换成json。
我的问题是如何使它正常工作。在我编译这些项目时保存json文件,或者将其保存为资源文件并能够读取它。
谢谢
您可以使用以下内容阅读嵌入式资源。
public static class EmbeddedResource
{
public static string[] GetApiRequestFile(string namespaceAndFileName)
{
try
{
using (var stream = typeof(EmbeddedResource).GetTypeInfo().Assembly.GetManifestResourceStream(namespaceAndFileName))
using (var reader = new StreamReader(stream, Encoding.UTF8))
return reader.ReadToEnd().Split(';');
}
catch(Exception exception)
{
ApplicationProvider.WriteToLog<EmbeddedResource>().Error(exception.Message);
throw new Exception($"Failed to read Embedded Resource {namespaceAndFileName}");
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,就我而言,我想读取包含我格式化的URL的嵌入式文本文件,它们主要充当模板。但是,您要寻找的逻辑是第一条线。
Solution - Opti
Folder - Resource
File - RequestUrl.txt
Run Code Online (Sandbox Code Playgroud)
如果我有一个文本文件所在的类,则具有指定文件的命名空间将为Opti.Resource.RequestUrl.txt。