Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
PropertyKeySerializerProcessor.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.Serializers
6 {
8  {
9  public void ProcessSerializers(CecilSerializerContext context)
10  {
11  // Iterate over each static member of type PropertyKey<> or ParameterKey<>
12  foreach (var type in context.Assembly.EnumerateTypes())
13  {
14  foreach (var member in type.Fields)
15  {
16  if (!member.IsStatic)
17  continue;
18 
19  if (member.FieldType.Name == "PropertyKey`1"
20  || member.FieldType.Name == "ParameterKey`1")
21  {
22  context.GenerateSerializer(member.FieldType);
23 
24  var genericType = (GenericInstanceType)member.FieldType;
25 
26  // Also generate serializer for embedded type
27  context.GenerateSerializer(genericType.GenericArguments[0]);
28  }
29  }
30  }
31  }
32  }
33 }
Gives the required generic serializer for a given type. This is useful for generation of serializatio...
void ProcessSerializers(CecilSerializerContext context)
Process serializers for given assembly context.