@@ -21,7 +21,7 @@ internal sealed class ArraySerializerFactory : ValueSerializerFactory
21
21
22
22
public override bool CanDeserialize ( Serializer serializer , Type type ) => CanSerialize ( serializer , type ) ;
23
23
24
- private static void WriteValues < T > ( T [ ] array , Stream stream , Type elementType , ValueSerializer elementSerializer , SerializerSession session )
24
+ private static void WriteValues ( Array array , Stream stream , Type elementType , ValueSerializer elementSerializer , SerializerSession session )
25
25
{
26
26
Int32Serializer . WriteValueImpl ( stream , array . Length , session ) ;
27
27
var preserveObjectReferences = session . Serializer . Options . PreserveObjectReferences ;
@@ -30,12 +30,12 @@ private static void WriteValues<T>(T[] array, Stream stream, Type elementType, V
30
30
stream . WriteObject ( value , elementType , elementSerializer , preserveObjectReferences , session ) ;
31
31
}
32
32
}
33
- private static void ReadValues < T > ( int length , Stream stream , DeserializerSession session , T [ ] array )
33
+ private static void ReadValues ( int length , Stream stream , DeserializerSession session , Array array )
34
34
{
35
35
for ( var i = 0 ; i < length ; i ++ )
36
36
{
37
- var value = ( T ) stream . ReadObject ( session ) ;
38
- array [ i ] = value ;
37
+ var value = stream . ReadObject ( session ) ;
38
+ array . SetValue ( value , i ) ;
39
39
}
40
40
}
41
41
@@ -57,7 +57,7 @@ public override ValueSerializer BuildSerializer(Serializer serializer, Type type
57
57
session . TrackDeserializedObject ( array ) ;
58
58
}
59
59
60
- ReadValues ( length , stream , session , ( dynamic ) array ) ;
60
+ ReadValues ( length , stream , session , array ) ;
61
61
62
62
return array ;
63
63
} ;
@@ -68,7 +68,7 @@ public override ValueSerializer BuildSerializer(Serializer serializer, Type type
68
68
session . TrackSerializedObject ( arr ) ;
69
69
}
70
70
71
- WriteValues ( ( dynamic ) arr , stream , elementType , elementSerializer , session ) ;
71
+ WriteValues ( ( Array ) arr , stream , elementType , elementSerializer , session ) ;
72
72
} ;
73
73
arraySerializer . Initialize ( reader , writer ) ;
74
74
typeMapping . TryAdd ( type , arraySerializer ) ;
0 commit comments