Skip to content

Commit 88daeb5

Browse files
committed
Fix null values
1 parent 81d1554 commit 88daeb5

2 files changed

Lines changed: 11 additions & 4 deletions

File tree

Source/EventFlow.Tests/UnitTests/ValueObjects/SingleValueObjectTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,8 @@ public void EqualsForDifferentValues()
168168

169169
private static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
170170
{
171-
DefaultValueHandling = DefaultValueHandling.Ignore
171+
DefaultValueHandling = DefaultValueHandling.Ignore,
172+
NullValueHandling = NullValueHandling.Ignore
172173
};
173174

174175
[JsonConverter(typeof(SingleValueObjectConverter))]

Source/EventFlow/ValueObjects/SingleValueObjectConverter.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,21 @@ public class SingleValueObjectConverter : JsonConverter
3535

3636
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
3737
{
38-
var singleValueObject = value as ISingleValueObject;
39-
if (singleValueObject == null)
38+
if (!(value is ISingleValueObject singleValueObject))
4039
{
4140
return;
4241
}
42+
4343
serializer.Serialize(writer, singleValueObject.GetValue());
4444
}
4545

4646
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
4747
{
48+
if (reader.Value == null)
49+
{
50+
return null;
51+
}
52+
4853
var parameterType = ConstructorArgumentTypes.GetOrAdd(
4954
objectType,
5055
t =>
@@ -55,7 +60,8 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
5560
});
5661

5762
var value = serializer.Deserialize(reader, parameterType);
58-
return Activator.CreateInstance(objectType, new[] { value });
63+
64+
return Activator.CreateInstance(objectType, value);
5965
}
6066

6167
public override bool CanConvert(Type objectType)

0 commit comments

Comments
 (0)