protected override object ReadBody(TLSerializationContext context) { object obj = Activator.CreateInstance(_objectType); for (int i = 0; i < _properties.Length; i++) { TLPropertyInfo tlPropertyInfo = _properties[i]; PropertyInfo propertyInfo = tlPropertyInfo.PropertyInfo; object propertyValue; Type propType = propertyInfo.PropertyType; ITLSerializer tlSerializer = context.Rig.GetSerializerByObjectType(propType); if (tlSerializer is ITLVectorSerializer) { var vectorSerializer = tlSerializer as ITLVectorSerializer; TLSerializationMode?itemsSerializationModeOverride = GetVectorItemsSerializationModeOverride(vectorSerializer, propertyInfo, context); propertyValue = vectorSerializer.Read(context, tlPropertyInfo.SerializationModeOverride, itemsSerializationModeOverride); } else { propertyValue = tlSerializer.Read(context, tlPropertyInfo.SerializationModeOverride); } tlPropertyInfo.PropertyInfo.SetValue(obj, propertyValue); } return(obj); }
protected override void WriteBody(object obj, TLSerializationContext context) { for (int i = 0; i < _properties.Length; i++) { TLPropertyInfo tlPropertyInfo = _properties[i]; PropertyInfo propertyInfo = tlPropertyInfo.PropertyInfo; Type propType = propertyInfo.PropertyType; object propertyValue = propertyInfo.GetValue(obj); ITLSerializer tlSerializer = context.Rig.GetSerializerByObjectType(propType); if (tlSerializer is ITLVectorSerializer) { var vectorSerializer = tlSerializer as ITLVectorSerializer; TLSerializationMode?itemsSerializationModeOverride = GetVectorItemsSerializationModeOverride(vectorSerializer, propertyInfo, context); vectorSerializer.Write(propertyValue, context, tlPropertyInfo.SerializationModeOverride, itemsSerializationModeOverride); } else { tlSerializer.Write(propertyValue, context, tlPropertyInfo.SerializationModeOverride); } } }
public TLVectorPropertySerializationAgent(TLPropertyInfo tlPropertyInfo, ITLVectorSerializer serializer, TLSerializationMode? itemsSerializationModeOverride) : base(tlPropertyInfo) { _serializer = serializer; _itemsSerializationModeOverride = itemsSerializationModeOverride; }
public TLPropertySerializationAgent(TLPropertyInfo tlPropertyInfo, ITLSerializer serializer) : base(tlPropertyInfo) { _serializer = serializer; }
public TLObjectPropertySerializationAgent(TLPropertyInfo tlPropertyInfo) : base(tlPropertyInfo) { }
protected TLPropertySerializationAgentBase(TLPropertyInfo tlPropertyInfo) { TLPropertyInfo = tlPropertyInfo; _propertyName = TLPropertyInfo.PropertyInfo.Name; }
public TLVectorPropertySerializationAgent(TLPropertyInfo tlPropertyInfo, ITLVectorSerializer serializer, TLSerializationMode?itemsSerializationModeOverride) : base(tlPropertyInfo) { _serializer = serializer; _itemsSerializationModeOverride = itemsSerializationModeOverride; }