diff --git a/Engine.Serialization/Converters/EntityReferenceConverter.cs b/Engine.Serialization/Converters/EntityReferenceConverter.cs index 406c674..6709c32 100644 --- a/Engine.Serialization/Converters/EntityReferenceConverter.cs +++ b/Engine.Serialization/Converters/EntityReferenceConverter.cs @@ -12,12 +12,12 @@ public class EntityReferenceConverter : IEngineTypeYamlConverter { parser.Consume(); - TypeContainer typeContainer = (TypeContainer)rootDeserializer(typeof(TypeContainer))!; - if (parser.Consume().Value.CompareTo(nameof(EntityReference.Id)) != 0) - throw new ArgumentException($"{nameof(EntityReference)} mapping must have an {nameof(EntityReference.Id)}"); + throw new ArgumentException($"{nameof(EntityReference)} mapping must start with {nameof(EntityReference.Id)}"); string id = parser.Consume().Value; + TypeContainer typeContainer = (TypeContainer)rootDeserializer(typeof(TypeContainer))!; + parser.Consume(); return new EntityReference() { Id = id, TypeContainer = typeContainer }; @@ -28,9 +28,9 @@ public class EntityReferenceConverter : IEngineTypeYamlConverter EntityReference? entityReference = (EntityReference)value!; emitter.Emit(new MappingStart()); - serializer(entityReference.TypeContainer, typeof(TypeContainer)); emitter.Emit(new Scalar(nameof(EntityReference.Id))); emitter.Emit(new Scalar(entityReference.Id)); + serializer(entityReference.TypeContainer, typeof(TypeContainer)); emitter.Emit(new MappingEnd()); } }