-Fixed serializing generated types with duplicate property names

This commit is contained in:
James Newton-King
2018-02-22 15:15:55 +13:00
parent d50b912e99
commit f2b6ea4966
6 changed files with 153 additions and 10 deletions
@@ -652,7 +652,7 @@ namespace Newtonsoft.Json.Utilities
}
else
{
IList<MemberInfo> resolvedMembers = new List<MemberInfo>();
List<MemberInfo> resolvedMembers = new List<MemberInfo>();
foreach (MemberInfo memberInfo in groupedMember)
{
// this is a bit hacky
@@ -664,6 +664,13 @@ namespace Newtonsoft.Json.Utilities
}
else if (!IsOverridenGenericMember(memberInfo, bindingAttr) || memberInfo.Name == "Item")
{
// two members with the same name were declared on a type
// this can be done via IL emit, e.g. Moq
if (resolvedMembers.Any(m => m.DeclaringType == memberInfo.DeclaringType))
{
continue;
}
resolvedMembers.Add(memberInfo);
}
}