Incognition

Untitled

Jul 28th, 2015
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.03 KB | None | 0 0
  1. public static void Save()
  2.     {
  3.             var model = ProtoBuf.Meta.TypeModel.Create();
  4.  
  5.             AddTypeToModel<Staff>( model );
  6.             AddTypeToModel<Hammer>( model );
  7.             AddTypeToModel<SmallBundle>( model );
  8.             AddTypeToModel<CultureInfo>( model );
  9.  
  10.             MetaType weapon = AddTypeToModel<Weapon>( model );
  11.             weapon.AddSubType( 100, typeof( Staff ) );
  12.             weapon.AddSubType( 101, typeof( Hammer ) );
  13.             weapon.AddSubType( 102, typeof( SmallBundle ) );
  14.  
  15.             MetaType item = AddTypeToModel<Item>( model );
  16.             item.AddSubType( 100, typeof( Weapon ) );
  17.  
  18.             List<Staff> weapons = _items.OfType<Staff>().ToList<Staff>();
  19.  
  20.             Serialize( model, weapons );
  21.         }
  22.  
  23.         private static MetaType AddTypeToModel<T>(RuntimeTypeModel typeModel)
  24.         {
  25.             var properties = typeof(T).GetProperties().Select(p => p.Name).OrderBy(name => name);
  26.             return typeModel.Add(typeof(T), true).Add(properties.ToArray());
  27.         }
Advertisement
Add Comment
Please, Sign In to add comment