diff --git a/arangodb-net-standard.Test/Serialization/JsonNetApiClientSerializationTest.cs b/arangodb-net-standard.Test/Serialization/JsonNetApiClientSerializationTest.cs
index b682c76a..43d005f0 100644
--- a/arangodb-net-standard.Test/Serialization/JsonNetApiClientSerializationTest.cs
+++ b/arangodb-net-standard.Test/Serialization/JsonNetApiClientSerializationTest.cs
@@ -126,6 +126,27 @@ public void Serialize_ShouldSucceed_WhenUsingDefaultOptions()
Assert.Contains("InnerTestModel_PropertyToCheckIfCamelCase", jsonString);
}
+ [Fact]
+ public void DefaultOptions_ShouldAllowValuesToBeModifiedInEachInstances()
+ {
+ var serialization1 = new JsonNetApiClientSerialization();
+ var serialization2 = new JsonNetApiClientSerialization();
+
+ AssertDefaultOptions(serialization1.DefaultOptions);
+
+ serialization1.DefaultOptions.UseCamelCasePropertyNames = true;
+ serialization1.DefaultOptions.IgnoreNullValues = false;
+ serialization1.DefaultOptions.UseStringEnumConversion = true;
+
+ Assert.True(serialization1.DefaultOptions.UseCamelCasePropertyNames);
+ Assert.False(serialization1.DefaultOptions.IgnoreNullValues);
+ Assert.True(serialization1.DefaultOptions.UseStringEnumConversion);
+
+ // Ensure options for each instances are independent
+
+ AssertDefaultOptions(serialization2.DefaultOptions);
+ }
+
[Fact]
public void Serialize_ShouldNotCamelCaseBindVars_WhenSerializingPostCursorBody()
{
@@ -227,5 +248,12 @@ public void DeserializeFromStream_ShouldSucceed()
Assert.Equal("myvalue", model.PropertyToCheckIfCamelCase);
Assert.Equal("something", model.NullProperty);
}
+
+ private void AssertDefaultOptions(ApiClientSerializationOptions options)
+ {
+ Assert.False(options.UseCamelCasePropertyNames);
+ Assert.True(options.IgnoreNullValues);
+ Assert.False(options.UseStringEnumConversion);
+ }
}
}
diff --git a/arangodb-net-standard/Serialization/ApiClientSerialization.cs b/arangodb-net-standard/Serialization/ApiClientSerialization.cs
index 44a11a7f..1408a242 100644
--- a/arangodb-net-standard/Serialization/ApiClientSerialization.cs
+++ b/arangodb-net-standard/Serialization/ApiClientSerialization.cs
@@ -11,7 +11,7 @@ public abstract class ApiClientSerialization : IApiClientSerialization
///
/// The default serialization options.
///
- public virtual ApiClientSerializationOptions DefaultOptions =>
+ public virtual ApiClientSerializationOptions DefaultOptions { get; } =
new ApiClientSerializationOptions(false, true, false);
///