public override UInt32 Serialize(object instance, byte[] array, UInt32 offset) { Object valueAsObject = fieldInfo.GetValue(instance); if (valueAsObject == null) { array.BigEndianSetUInt32Subtype(offset, 0, arraySizeByteCount); return(offset + arraySizeByteCount); } ElementType[] valueAsArray = (ElementType[])valueAsObject; array.BigEndianSetUInt32Subtype(offset, (UInt32)valueAsArray.Length, arraySizeByteCount); offset += arraySizeByteCount; for (int i = 0; i < valueAsArray.Length; i++) { elementSerializer.Serialize(array, offset, valueAsArray[i]); offset += fixedElementSerializationLength; } return(offset); }
public UInt32 Serialize(Object instance, Byte[] array, UInt32 offset) { return(serializer.Serialize(array, offset, (T)instance)); }