C# 用C解析一个简单的YAML文件#

C# 用C解析一个简单的YAML文件#,c#,yaml,C#,Yaml,我有如下所示的YAML文件 Main: GPort: 1234 IPort: 3000 Prefix: "192.168.0" 我编写了以下函数来解析文件 public static ProgramConfiguration LoadConfiguration(string config) { var deserializer = new Deserializer(); StringReader sr

我有如下所示的
YAML
文件

Main: 
  GPort: 1234
  IPort: 3000
  Prefix: "192.168.0"
我编写了以下函数来解析文件

        public static ProgramConfiguration LoadConfiguration(string config)
        {
            var deserializer = new Deserializer();
            StringReader sr = new StringReader(config);
            var result = deserializer.Deserialize<ProgramConfiguration>(sr);
            ProgramConfiguration bc = new ProgramConfiguration();

            return result;
        }
函数LoadConfiguration抛出一个错误

在YamlDotNet.dll中发生“YamlDotNet.Core.YamlException”类型的未处理异常

var result=反序列化器。反序列化(sr)


我做错了什么?

你的意思是在类中使用“NetworkPrefix”,但在YAML文件中有“Prefix”?你缺少
Main
元素-你应该尝试反序列化到
class Config{public programmarconfiguration Main{get;set;}
非常类似,人们往往忘记反序列化根元素(在本例中,一个包含键
Main
的映射和一个映射为值的映射,映射到
ProgramConfiguration
类。您的意思是在类中使用“NetworkPrefix”,但在YAML文件中有“Prefix”?您缺少
Main
元素-您应该尝试反序列化到
class Config。){public programmarconfiguration Main{get;set;}}
非常类似,人们往往忘记反序列化根元素(在本例中,是一个包含键
Main
的映射,以及一个映射为值的映射,映射到
programmarconfiguration
类)。
public class ProgramConfiguration 
{
    public string Prefix { get; set;}
    public int GPort { get; set; }
    public int IPort { get; set; }
}