Самый простой способ - создать C# модель вашего документа. Затем вы можете использовать Deserializer
, чтобы заполнить эту модель данными, представленными в документе. Возможная модель для вашего документа:
public class MyModel
{
[YamlMember(Alias = "FileConfig", ApplyNamingConventions = false)]
public FileConfig FileConfig { get; set; }
}
public class FileConfig
{
public string SourceFolder { get; set; }
public string DestinationFolder { get; set; }
public List<Scenario> Scenarios { get; set; }
}
public class Scenario
{
public string Name { get; set; }
public List<Alteration> Alterations { get; set; }
}
public class Alteration
{
public string TableExtension { get; set; }
public List<TableAlteration> Alterations { get; set; }
}
public class TableAlteration
{
public string Type { get; set; }
public int SourceLineIndex { get; set; }
public int DestinationLineIndex { get; set; }
public string ColumnName { get; set; }
public string NewValue { get; set; }
}
Вы можете выполнить десериализацию в эту модель следующим образом:
var deserializer = new DeserializerBuilder()
.WithNamingConvention(CamelCaseNamingConvention.Instance)
.Build();
var obj = deserializer.Deserialize<MyModel>(yaml);
Вы можете запустить этот код здесь: https://dotnetfiddle.net/SRABFM
Конечно, модель, которую я предлагаю здесь, очень наивна, и, зная больше о вашей модели предметной области, вы наверняка сможете придумать лучшую.