Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
CecilEnumSerializerFactory.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 Mono.Cecil;
4 
5 namespace SiliconStudio.AssemblyProcessor
6 {
7  /// <summary>
8  /// Generates enum serializer type from a given enum type.
9  /// </summary>
11  {
12  private readonly TypeReference genericEnumSerializerType;
13 
14  public CecilEnumSerializerFactory(TypeReference genericEnumSerializerType)
15  {
16  this.genericEnumSerializerType = genericEnumSerializerType;
17  }
18 
19  public TypeReference GetSerializer(TypeReference objectType)
20  {
21  var resolvedObjectType = objectType.Resolve();
22  if (resolvedObjectType != null && resolvedObjectType.IsEnum)
23  {
24  return genericEnumSerializerType.MakeGenericType(objectType);
25  }
26 
27  return null;
28  }
29  }
30 }
CecilEnumSerializerFactory(TypeReference genericEnumSerializerType)
TypeReference GetSerializer(TypeReference objectType)
Gets the serializer type from a given object type.
Generates enum serializer type from a given enum type.
Gives the required generic serializer for a given type. This is useful for generation of serializatio...