RpcSaveItem.cs 783 B

12345678910111213141516171819202122232425262728293031
  1. using System;
  2. using InABox.Core;
  3. namespace InABox.Rpc
  4. {
  5. public class RpcSaveItem : ISerializeBinary
  6. {
  7. public Guid Key { get; set; }
  8. public Type Type { get; set; }
  9. public Entity? Entity { get; set; }
  10. public RpcSaveItem()
  11. {
  12. Key = Guid.NewGuid();
  13. }
  14. public void SerializeBinary(CoreBinaryWriter writer)
  15. {
  16. writer.Write(Key);
  17. writer.Write(Type.EntityName());
  18. writer.WriteBinaryValue(Type, Entity);
  19. }
  20. public void DeserializeBinary(CoreBinaryReader reader)
  21. {
  22. Key = reader.ReadGuid();
  23. Type = CoreUtils.GetEntity(reader.ReadString());
  24. Entity = reader.ReadBinaryValue(Type) as Entity;
  25. }
  26. }
  27. }