Skip to content

Commit

Permalink
Update CustomContractResolver.cs
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonCropp committed Aug 12, 2020
1 parent 9fd2f45 commit 1fcb504
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions src/Verify/Serialization/CustomContractResolver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,9 @@ protected override JsonProperty CreateProperty(MemberInfo member, MemberSerializ
{
var property = base.CreateProperty(member, serialization);

if (property.PropertyType == null || property.ValueProvider == null)
var valueProvider = property.ValueProvider;
var propertyType = property.PropertyType;
if (propertyType == null || valueProvider == null)
{
return property;
}
Expand All @@ -117,21 +119,22 @@ protected override JsonProperty CreateProperty(MemberInfo member, MemberSerializ
}
}

if (ignoredTypes.Any(x => x.IsAssignableFrom(property.PropertyType)))
if (ignoredTypes.Any(x => x.IsAssignableFrom(propertyType)))
{
property.Ignored = true;
return property;
}

if (ignoredByNameMembers.Contains(property.PropertyName!))
var propertyName = property.PropertyName!;
if (ignoredByNameMembers.Contains(propertyName))
{
property.Ignored = true;
return property;
}

foreach (var keyValuePair in ignoredMembers)
{
if (keyValuePair.Value.Contains(property.PropertyName!))
if (keyValuePair.Value.Contains(propertyName))
{
if (keyValuePair.Key.IsAssignableFrom(property.DeclaringType))
{
Expand All @@ -141,11 +144,11 @@ protected override JsonProperty CreateProperty(MemberInfo member, MemberSerializ
}
}

if (ignoredInstances.TryGetValue(property.PropertyType, out var funcs))
if (ignoredInstances.TryGetValue(propertyType, out var funcs))
{
property.ShouldSerialize = declaringInstance =>
{
var instance = property.ValueProvider.GetValue(declaringInstance);
var instance = valueProvider.GetValue(declaringInstance);

if (instance == null)
{
Expand All @@ -164,7 +167,7 @@ protected override JsonProperty CreateProperty(MemberInfo member, MemberSerializ
};
}

property.ValueProvider = new CustomValueProvider(property.ValueProvider, property.PropertyType, ignoreMembersThatThrow);
property.ValueProvider = new CustomValueProvider(valueProvider, propertyType, ignoreMembersThatThrow);

return property;
}
Expand Down

0 comments on commit 1fcb504

Please sign in to comment.