YamlDotNet - Deserializing multiple documents

CSharp · Console

/Program.cs

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using YamlDotNet.Core;
using YamlDotNet.Core.Events;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;

namespace YamlDotNet.Samples
{
	public class DeserializeObjectGraph
	{
		public void Main()
		{
			var input = new StringReader(Document);
			
			var deserializer = new Deserializer();
			
			var reader = new EventReader(new Parser(input));
			
			// Consume the stream start event "manually"
			reader.Expect<StreamStart>();
			
			while(reader.Accept<DocumentStart>())
			{
				// Deserialize the document
				var doc = deserializer.Deserialize<List<string>>(reader);
			
				Console.WriteLine("## Document");
				foreach(var item in doc)
				{
					Console.WriteLine(item);
				}
			}	
		}
		
		private const string Document = @"---
- Prisoner
- Goblet
- Phoenix
---
- Memoirs
- Snow 
- Ghost		
...";
	}
}
;