Wie analysiere ich ein Objekt mit einem Wörterbuch aus einer Yaml-Datei?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie analysiere ich ein Objekt mit einem Wörterbuch aus einer Yaml-Datei?

Post by Anonymous »

Hier ist die allgemeine Struktur:

Code: Select all

public struct Choice
{
public string result;
public string nextBranch;
}

public struct Branch
{
public Dictionary choices;
}

public class ChoiceTree
{
public Dictionary branches;
// some other properties

// some methods
}
Und ich fülle derzeit mein ChoiceTree-Objekt manuell mit Textfeldern, da es sich um ein WPF-Projekt handelt. Stattdessen möchte ich sie aus einer YAML-Datei analysieren. Ich habe dies als Ausgangspunkt gemacht. Ich habe keine Ahnung, ob es richtig eingerichtet ist, aber ich habe zumindest einen Online-Checker verwendet, um sicherzustellen, dass die Syntax korrekt ist:

Code: Select all

branches:
- Key: "main1"
Value:
choices:
- Key: "few minutes"
Value:
result: "S"
nextBranch: "refuse"
- Key: "hold on"
Value:
result: "D"
nextBranch: "refuse"
- Key: "of course"
Value:
result: "LS"
nextBranch: "accept"
- Key: "fine"
Value:
result: "HD"
nextBranch: "accept"
- Key: "refuse"
Value:
- Key: "reluctant"
Value:
choices:
result: "HH"
nextBranch: "accept"
- Key: "happily"
Value:
choices:
result: "L"
nextBranch: "accept"
Ich denke, dass ich diesem Beispiel bisher am nächsten gekommen bin. Und mit „am nächsten“ meine ich, dass zumindest der folgende Code kompiliert wird. Aber es funktioniert nicht, und ich habe keine Ahnung, warum.

Code: Select all

public class YamlChoiceTreeeParser
{
public YamlChoiceTreeeParser(string filePath)
{
if (!File.Exists(filePath))
{
throw new Exception("YAML file not found");
}
using (StreamReader sr = new StreamReader(filePath))
{
var deserializer = new DeserializerBuilder()
.Build();
var choiceTree = deserializer.Deserialize(sr);
}
}
}
Ich habe eine Reihe verschiedener Variationen der Yaml-Datei und eine Reihe verschiedener Beispiele ausprobiert, aber ich komme nicht einmal ohne Ausnahme in die letzte Zeile.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post