Skip to content

Commit 7f3f2fb

Browse files
committed
Remove dynamic keyword
1 parent 0d0ec28 commit 7f3f2fb

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*.user
77
*.userosscache
88
*.sln.docstates
9-
9+
.ionide/**
1010
# User-specific files (MonoDevelop/Xamarin Studio)
1111
*.userprefs
1212

src/Hyperion/SerializerFactories/ArraySerializerFactory.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ internal sealed class ArraySerializerFactory : ValueSerializerFactory
2121

2222
public override bool CanDeserialize(Serializer serializer, Type type) => CanSerialize(serializer, type);
2323

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)
2525
{
2626
Int32Serializer.WriteValueImpl(stream, array.Length, session);
2727
var preserveObjectReferences = session.Serializer.Options.PreserveObjectReferences;
@@ -30,12 +30,12 @@ private static void WriteValues<T>(T[] array, Stream stream, Type elementType, V
3030
stream.WriteObject(value, elementType, elementSerializer, preserveObjectReferences, session);
3131
}
3232
}
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)
3434
{
3535
for (var i = 0; i < length; i++)
3636
{
37-
var value = (T)stream.ReadObject(session);
38-
array[i] = value;
37+
var value = stream.ReadObject(session);
38+
array.SetValue(value, i);
3939
}
4040
}
4141

@@ -57,7 +57,7 @@ public override ValueSerializer BuildSerializer(Serializer serializer, Type type
5757
session.TrackDeserializedObject(array);
5858
}
5959

60-
ReadValues(length, stream, session, (dynamic)array);
60+
ReadValues(length, stream, session, array);
6161

6262
return array;
6363
};
@@ -68,7 +68,7 @@ public override ValueSerializer BuildSerializer(Serializer serializer, Type type
6868
session.TrackSerializedObject(arr);
6969
}
7070

71-
WriteValues((dynamic)arr, stream, elementType, elementSerializer, session);
71+
WriteValues((Array)arr, stream, elementType, elementSerializer, session);
7272
};
7373
arraySerializer.Initialize(reader, writer);
7474
typeMapping.TryAdd(type, arraySerializer);

src/Hyperion/ValueSerializers/ConsistentArraySerializer.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,16 @@ public override void WriteValue(Stream stream, object value, SerializerSession s
7171
var elementSerializer = session.Serializer.GetSerializerByType(elementType);
7272
elementSerializer.WriteManifest(stream, session); //write array element type
7373
// ReSharper disable once PossibleNullReferenceException
74-
WriteValues((dynamic)value, stream,elementSerializer,session);
74+
WriteValues((Array)value, stream,elementSerializer,session);
7575
}
7676

77-
private static void WriteValues<T>(T[] array, Stream stream, ValueSerializer elementSerializer, SerializerSession session)
77+
private static void WriteValues(Array array, Stream stream, ValueSerializer elementSerializer, SerializerSession session)
7878
{
79+
var tp = array.GetType();
7980
Int32Serializer.WriteValueImpl(stream,array.Length,session);
80-
if (typeof(T).IsFixedSizeType())
81+
if (tp.IsFixedSizeType())
8182
{
82-
var size = typeof(T).GetTypeSize();
83+
var size = tp.GetTypeSize();
8384
var result = new byte[array.Length * size];
8485
Buffer.BlockCopy(array, 0, result, 0, result.Length);
8586
stream.Write(result);

0 commit comments

Comments
 (0)