C#中是否有一种简单的方法可以读取一个属性文件,该属性文件将每个属性在单独的行上,然后是等于符号和值,例如以下内容:

ServerName=prod-srv1
Port=8888
CustomProperty=Any value

在Java中,属性类可以轻松地处理此解析:

Properties myProperties=new Properties();
FileInputStream fis = new FileInputStream (new File("CustomProps.properties"));
myProperties.load(fis);
System.out.println(myProperties.getProperty("ServerName"));
System.out.println(myProperties.getProperty("CustomProperty"));

我可以轻松地将文件加载到c#中并分析每行,但是是否内置了可以轻松获取属性而无需解析关键名称并自己等于签名的方式?我发现的C#信息似乎总是偏爱XML,但这是我无法控制的现有文件,我希望以现有的格式保持它,因为它需要更多的时间让另一个团队将其更改为XML而不是解析现有文件。

答案

没有对此没有内置的支持。

您必须自己制作自己的" inifilereader"。也许是这样的?

var data = new Dictionary<string, string>();
foreach (var row in File.ReadAllLines(PATH_TO_FILE))
  data.Add(row.Split('=')[0], string.Join("=",row.Split('=').Skip(1).ToArray()));

Console.WriteLine(data["ServerName"]);

编辑:更新以反映保罗的评论。

来自: stackoverflow.com