Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
DynamicYamlObject.cs
Go to the documentation of this file.
1 using System;
2 using System.Dynamic;
3 using System.Globalization;
4 using SharpYaml.Serialization;
5 
6 namespace SiliconStudio.Core.Yaml
7 {
8  public abstract class DynamicYamlObject : DynamicObject
9  {
10  protected static YamlNode ConvertFromDynamic(object obj)
11  {
12  if (obj == null)
13  return new YamlScalarNode("null");
14 
15  if (obj is YamlNode)
16  return (YamlNode)obj;
17 
18  if (obj is DynamicYamlMapping)
19  return ((DynamicYamlMapping)obj).node;
20  if (obj is DynamicYamlArray)
21  return ((DynamicYamlArray)obj).node;
22  if (obj is DynamicYamlScalar)
23  return ((DynamicYamlScalar)obj).node;
24 
25  return new YamlScalarNode(String.Format(CultureInfo.InvariantCulture, "{0}", obj));
26  }
27 
28  protected static object ConvertToDynamic(object obj)
29  {
30  if (obj is YamlScalarNode)
31  return new DynamicYamlScalar((YamlScalarNode)obj);
32  if (obj is YamlMappingNode)
33  return new DynamicYamlMapping((YamlMappingNode)obj);
34  if (obj is YamlSequenceNode)
35  return new DynamicYamlArray((YamlSequenceNode)obj);
36 
37  return obj;
38 
39  }
40  }
41 }
Dynamic version of YamlMappingNode.
static YamlNode ConvertFromDynamic(object obj)
static object ConvertToDynamic(object obj)
Dynamic version of YamlSequenceNode.
Dynamic version of YamlScalarNode.