Fix InvalidCast when reading an enum vector

This commit is contained in:
Wizou 2022-02-07 22:06:10 +01:00
parent 8bbb753c32
commit 403969356f

View file

@ -201,8 +201,12 @@ namespace TL
{
int count = reader.ReadInt32();
Array array = (Array)Activator.CreateInstance(type, count);
for (int i = 0; i < count; i++)
array.SetValue(reader.ReadTLValue(elementType), i);
if (elementType.IsEnum)
for (int i = 0; i < count; i++)
array.SetValue(Enum.ToObject(elementType, reader.ReadTLValue(elementType)), i);
else
for (int i = 0; i < count; i++)
array.SetValue(reader.ReadTLValue(elementType), i);
return array;
}
else if (ctorNb < 1024 && !elementType.IsAbstract && elementType.GetCustomAttribute<TLDefAttribute>() is TLDefAttribute attr)