Browse Source

Scan base types when searching for serializable props

voice-allocs
RogueException 7 years ago
parent
commit
33861089df
1 changed files with 13 additions and 8 deletions
  1. +13
    -8
      src/Discord.Net.Serialization/Serializer.cs

+ 13
- 8
src/Discord.Net.Serialization/Serializer.cs View File

@@ -56,18 +56,23 @@ namespace Discord.Serialization
return _maps.GetOrAdd(typeof(TModel), _ =>
{
var type = typeof(TModel).GetTypeInfo();
var propInfos = type.DeclaredProperties
.Where(x => x.CanRead && x.CanWrite)
.ToArray();

var properties = new List<PropertyMap>();
for (int i = 0; i < propInfos.Length; i++)
while (type != null)
{
if (propInfos[i].GetCustomAttribute<ModelPropertyAttribute>() != null)
var propInfos = type.DeclaredProperties
.Where(x => x.CanRead && x.CanWrite)
.ToArray();

for (int i = 0; i < propInfos.Length; i++)
{
var propMap = MapProperty<TModel>(propInfos[i]);
properties.Add(propMap);
if (propInfos[i].GetCustomAttribute<ModelPropertyAttribute>() != null)
{
var propMap = MapProperty<TModel>(propInfos[i]);
properties.Add(propMap);
}
}

type = type.BaseType?.GetTypeInfo();
}
return new ModelMap<TModel>(this, type, properties);
}) as ModelMap<TModel>;


Loading…
Cancel
Save