Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
AssetScalarSerializerBase.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 using System;
4 using SharpYaml.Serialization;
5 using SharpYaml.Serialization.Serializers;
6 using SiliconStudio.Core.Reflection;
8 
9 namespace SiliconStudio.Core.Yaml
10 {
12  {
13  public IYamlSerializable TryCreate(SerializerContext context, ITypeDescriptor typeDescriptor)
14  {
15  return CanVisit(typeDescriptor.Type) ? this : null;
16  }
17 
18  public abstract bool CanVisit(Type type);
19 
20  public void Visit(ref VisitorContext context)
21  {
22  // For a scalar object, we don't visit its members
23  // But we do still visit the instance (either struct or class)
24  context.Visitor.VisitObject(context.Instance, context.Descriptor, false);
25  }
26  }
27 }
IYamlSerializable TryCreate(SerializerContext context, ITypeDescriptor typeDescriptor)
Type Type
Gets the type described by this instance.
SharpYaml.Serialization.ITypeDescriptor ITypeDescriptor
void Visit(ref VisitorContext context)
Visits the specified object.
A custom visitor used by DataVisitorBase.
Provides access members of a type.