diff --git a/Activout.RestClient.Newtonsoft.Json.Test/Activout.RestClient.Newtonsoft.Json.Test.csproj b/Activout.RestClient.Newtonsoft.Json.Test/Activout.RestClient.Newtonsoft.Json.Test.csproj
new file mode 100644
index 0000000..b592bfb
--- /dev/null
+++ b/Activout.RestClient.Newtonsoft.Json.Test/Activout.RestClient.Newtonsoft.Json.Test.csproj
@@ -0,0 +1,28 @@
+
+
+
+
+ false
+ net8.0
+ default
+
+
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
diff --git a/Activout.RestClient.Test/DomainExceptionTests/DefaultDomainExceptionErrorObjectTests.cs b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/DefaultDomainExceptionErrorObjectTests.cs
similarity index 97%
rename from Activout.RestClient.Test/DomainExceptionTests/DefaultDomainExceptionErrorObjectTests.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/DefaultDomainExceptionErrorObjectTests.cs
index 7428b0c..61b627b 100644
--- a/Activout.RestClient.Test/DomainExceptionTests/DefaultDomainExceptionErrorObjectTests.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/DefaultDomainExceptionErrorObjectTests.cs
@@ -8,7 +8,7 @@
using RichardSzalay.MockHttp;
using Xunit;
-namespace Activout.RestClient.Test.DomainExceptionTests
+namespace Activout.RestClient.Newtonsoft.Json.Test.DomainExceptions
{
[ErrorResponse(typeof(MyApiErrorResponse))]
[DomainException(typeof(SomeDomainErrorObjectException))]
@@ -43,6 +43,7 @@ public DefaultDomainExceptionErrorObjectTests()
_defaultMapperApiClient = Services.CreateRestClientFactory()
.CreateBuilder()
+ .WithNewtonsoftJson()
.With(_mockHttp.ToHttpClient())
.BaseUri(new Uri(BaseUri))
.Build();
diff --git a/Activout.RestClient.Test/DomainExceptionTests/DomainExceptionErrorEnumTests.cs b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/DomainExceptionErrorEnumTests.cs
similarity index 97%
rename from Activout.RestClient.Test/DomainExceptionTests/DomainExceptionErrorEnumTests.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/DomainExceptionErrorEnumTests.cs
index a6bba92..aa86902 100644
--- a/Activout.RestClient.Test/DomainExceptionTests/DomainExceptionErrorEnumTests.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/DomainExceptionErrorEnumTests.cs
@@ -8,7 +8,7 @@
using RichardSzalay.MockHttp;
using Xunit;
-namespace Activout.RestClient.Test.DomainExceptionTests
+namespace Activout.RestClient.Newtonsoft.Json.Test.DomainExceptions
{
internal class MyDomainErrorEnumException : Exception
{
@@ -47,6 +47,7 @@ public DomainExceptionErrorEnumTests()
_myApiClient = Services.CreateRestClientFactory()
.CreateBuilder()
.With(_mockHttp.ToHttpClient())
+ .WithNewtonsoftJson()
.BaseUri(new Uri(BaseUri))
.Build();
}
diff --git a/Activout.RestClient.Test/DomainExceptionTests/DomainExceptionErrorObjectTests.cs b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/DomainExceptionErrorObjectTests.cs
similarity index 97%
rename from Activout.RestClient.Test/DomainExceptionTests/DomainExceptionErrorObjectTests.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/DomainExceptionErrorObjectTests.cs
index 8eddc7c..2e99c85 100644
--- a/Activout.RestClient.Test/DomainExceptionTests/DomainExceptionErrorObjectTests.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/DomainExceptionErrorObjectTests.cs
@@ -9,7 +9,7 @@
using RichardSzalay.MockHttp;
using Xunit;
-namespace Activout.RestClient.Test.DomainExceptionTests
+namespace Activout.RestClient.Newtonsoft.Json.Test.DomainExceptions
{
internal class MyDomainErrorObject
{
@@ -78,6 +78,7 @@ public DomainExceptionErrorObjectTests()
_myApiClient = Services.CreateRestClientFactory()
.CreateBuilder()
+ .WithNewtonsoftJson()
.With(_mockHttp.ToHttpClient())
.BaseUri(new Uri(BaseUri))
.With(new MyDomainExceptionMapperFactory())
diff --git a/Activout.RestClient.Test/DomainExceptionTests/MyApiError.cs b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/MyApiError.cs
similarity index 52%
rename from Activout.RestClient.Test/DomainExceptionTests/MyApiError.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/MyApiError.cs
index 6795aa8..1bd2570 100644
--- a/Activout.RestClient.Test/DomainExceptionTests/MyApiError.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/MyApiError.cs
@@ -1,4 +1,4 @@
-namespace Activout.RestClient.Test.DomainExceptionTests
+namespace Activout.RestClient.Newtonsoft.Json.Test.DomainExceptions
{
public enum MyApiError
{
diff --git a/Activout.RestClient.Test/DomainExceptionTests/MyApiErrorResponse.cs b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/MyApiErrorResponse.cs
similarity index 70%
rename from Activout.RestClient.Test/DomainExceptionTests/MyApiErrorResponse.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/MyApiErrorResponse.cs
index 19883bf..b010980 100644
--- a/Activout.RestClient.Test/DomainExceptionTests/MyApiErrorResponse.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/MyApiErrorResponse.cs
@@ -1,4 +1,4 @@
-namespace Activout.RestClient.Test.DomainExceptionTests
+namespace Activout.RestClient.Newtonsoft.Json.Test.DomainExceptions
{
public class MyApiErrorResponse
{
diff --git a/Activout.RestClient.Test/DomainExceptionTests/MyDomainErrorAttribute.cs b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/MyDomainErrorAttribute.cs
similarity index 79%
rename from Activout.RestClient.Test/DomainExceptionTests/MyDomainErrorAttribute.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/MyDomainErrorAttribute.cs
index 3dad713..573d320 100644
--- a/Activout.RestClient.Test/DomainExceptionTests/MyDomainErrorAttribute.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/MyDomainErrorAttribute.cs
@@ -1,6 +1,6 @@
using Activout.RestClient.DomainExceptions;
-namespace Activout.RestClient.Test.DomainExceptionTests
+namespace Activout.RestClient.Newtonsoft.Json.Test.DomainExceptions
{
internal class MyDomainErrorAttribute : DomainErrorAttribute
{
diff --git a/Activout.RestClient.Test/DomainExceptionTests/MyDomainErrorEnum.cs b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/MyDomainErrorEnum.cs
similarity index 73%
rename from Activout.RestClient.Test/DomainExceptionTests/MyDomainErrorEnum.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/MyDomainErrorEnum.cs
index b83fbec..03090fe 100644
--- a/Activout.RestClient.Test/DomainExceptionTests/MyDomainErrorEnum.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/MyDomainErrorEnum.cs
@@ -1,4 +1,4 @@
-namespace Activout.RestClient.Test.DomainExceptionTests
+namespace Activout.RestClient.Newtonsoft.Json.Test.DomainExceptions
{
public enum MyDomainErrorEnum
{
diff --git a/Activout.RestClient.Test/DomainExceptionTests/MyDomainHttpErrorAttribute.cs b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/MyDomainHttpErrorAttribute.cs
similarity index 53%
rename from Activout.RestClient.Test/DomainExceptionTests/MyDomainHttpErrorAttribute.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/MyDomainHttpErrorAttribute.cs
index 9ad9103..d488765 100644
--- a/Activout.RestClient.Test/DomainExceptionTests/MyDomainHttpErrorAttribute.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/DomainExceptions/MyDomainHttpErrorAttribute.cs
@@ -1,8 +1,9 @@
using System.Net;
+using Activout.RestClient.DomainExceptions;
-namespace Activout.RestClient.Test.DomainExceptionTests
+namespace Activout.RestClient.Newtonsoft.Json.Test.DomainExceptions
{
- internal class MyDomainHttpErrorAttribute : DomainExceptions.DomainHttpErrorAttribute
+ internal class MyDomainHttpErrorAttribute : DomainHttpErrorAttribute
{
public MyDomainHttpErrorAttribute(HttpStatusCode httpStatusCode, MyDomainErrorEnum domainErrorValue) : base(
httpStatusCode, domainErrorValue)
diff --git a/Activout.RestClient.Newtonsoft.Json.Test/LoggerFactoryHelpers.cs b/Activout.RestClient.Newtonsoft.Json.Test/LoggerFactoryHelpers.cs
new file mode 100644
index 0000000..ad5f135
--- /dev/null
+++ b/Activout.RestClient.Newtonsoft.Json.Test/LoggerFactoryHelpers.cs
@@ -0,0 +1,20 @@
+using Microsoft.Extensions.Logging;
+using Xunit.Abstractions;
+
+namespace Activout.RestClient.Newtonsoft.Json.Test
+{
+ public static class LoggerFactoryHelpers
+ {
+ public static ILoggerFactory CreateLoggerFactory(ITestOutputHelper outputHelper)
+ {
+ return LoggerFactory.Create(builder =>
+ {
+ builder
+ .AddFilter("Microsoft", LogLevel.Warning)
+ .AddFilter("System", LogLevel.Warning)
+ .AddFilter("Activout.RestClient", LogLevel.Debug)
+ .AddXUnit(outputHelper);
+ });
+ }
+ }
+}
\ No newline at end of file
diff --git a/Activout.RestClient.Test/MovieReviews/ErrorResponse.cs b/Activout.RestClient.Newtonsoft.Json.Test/MovieReviews/ErrorResponse.cs
similarity index 80%
rename from Activout.RestClient.Test/MovieReviews/ErrorResponse.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/MovieReviews/ErrorResponse.cs
index ba48292..c3e04dc 100644
--- a/Activout.RestClient.Test/MovieReviews/ErrorResponse.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/MovieReviews/ErrorResponse.cs
@@ -1,6 +1,6 @@
using System.Collections.Generic;
-namespace Activout.RestClient.Test.MovieReviews
+namespace Activout.RestClient.Newtonsoft.Json.Test.MovieReviews
{
public class ErrorResponse
{
diff --git a/Activout.RestClient.Test/MovieReviews/IMovieReviewService.cs b/Activout.RestClient.Newtonsoft.Json.Test/MovieReviews/IMovieReviewService.cs
similarity index 97%
rename from Activout.RestClient.Test/MovieReviews/IMovieReviewService.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/MovieReviews/IMovieReviewService.cs
index 949aecc..6fb1c6f 100644
--- a/Activout.RestClient.Test/MovieReviews/IMovieReviewService.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/MovieReviews/IMovieReviewService.cs
@@ -6,7 +6,7 @@
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
-namespace Activout.RestClient.Test.MovieReviews
+namespace Activout.RestClient.Newtonsoft.Json.Test.MovieReviews
{
[Path("movies")]
[ErrorResponse(typeof(ErrorResponse))]
diff --git a/Activout.RestClient.Test/MovieReviews/Movie.cs b/Activout.RestClient.Newtonsoft.Json.Test/MovieReviews/Movie.cs
similarity index 74%
rename from Activout.RestClient.Test/MovieReviews/Movie.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/MovieReviews/Movie.cs
index e31231c..fc0c87f 100644
--- a/Activout.RestClient.Test/MovieReviews/Movie.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/MovieReviews/Movie.cs
@@ -1,6 +1,6 @@
using System.Diagnostics.CodeAnalysis;
-namespace Activout.RestClient.Test.MovieReviews
+namespace Activout.RestClient.Newtonsoft.Json.Test.MovieReviews
{
[SuppressMessage("ReSharper", "ClassNeverInstantiated.Global")]
public class Movie
diff --git a/Activout.RestClient.Test/MovieReviews/Review.cs b/Activout.RestClient.Newtonsoft.Json.Test/MovieReviews/Review.cs
similarity index 82%
rename from Activout.RestClient.Test/MovieReviews/Review.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/MovieReviews/Review.cs
index c11ee0a..e6037f7 100644
--- a/Activout.RestClient.Test/MovieReviews/Review.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/MovieReviews/Review.cs
@@ -1,4 +1,4 @@
-namespace Activout.RestClient.Test.MovieReviews
+namespace Activout.RestClient.Newtonsoft.Json.Test.MovieReviews
{
public class Review
{
diff --git a/Activout.RestClient.Test/JsonDeserializerTest.cs b/Activout.RestClient.Newtonsoft.Json.Test/NewtonsoftJsonDeserializerTest.cs
similarity index 89%
rename from Activout.RestClient.Test/JsonDeserializerTest.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/NewtonsoftJsonDeserializerTest.cs
index 7c4ba01..cdd9945 100644
--- a/Activout.RestClient.Test/JsonDeserializerTest.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/NewtonsoftJsonDeserializerTest.cs
@@ -3,13 +3,14 @@
using System.Linq;
using System.Net.Http;
using System.Text;
+using Activout.RestClient.Newtonsoft.Json;
using Activout.RestClient.Serialization.Implementation;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using RichardSzalay.MockHttp;
using Xunit;
-namespace Activout.RestClient.Test
+namespace Activout.RestClient.Newtonsoft.Json.Test
{
[SuppressMessage("ReSharper", "ClassNeverInstantiated.Global")]
public class Data
@@ -22,9 +23,9 @@ public interface IClient
Data GetData();
}
- public class JsonDeserializerTest
+ public class NewtonsoftJsonDeserializerTest
{
- public JsonDeserializerTest()
+ public NewtonsoftJsonDeserializerTest()
{
_restClientFactory = Services.CreateRestClientFactory();
_mockHttp = new MockHttpMessageHandler();
@@ -76,7 +77,7 @@ public void TestCamelCaseWithDeserializer()
MockCamelCaseResponse();
var client = CreateRestClientBuilder()
- .With(new JsonDeserializer(new JsonSerializerSettings
+ .With(new NewtonsoftJsonDeserializer(new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
}))
@@ -97,7 +98,7 @@ public void TestCamelCaseWithSerializationManager()
MockCamelCaseResponse();
var deserializers = SerializationManager.DefaultDeserializers.ToList();
- deserializers.Add(new JsonDeserializer(new JsonSerializerSettings
+ deserializers.Add(new NewtonsoftJsonDeserializer(new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
}));
@@ -118,8 +119,9 @@ public void TestCamelCaseWithSerializationManager()
private IRestClientBuilder CreateRestClientBuilder()
{
return _restClientFactory.CreateBuilder()
+ .WithNewtonsoftJson()
.With(_mockHttp.ToHttpClient())
.BaseUri(new Uri(BaseUri));
}
}
-}
\ No newline at end of file
+}
diff --git a/Activout.RestClient.Test/RestClientTests.cs b/Activout.RestClient.Newtonsoft.Json.Test/RestClientTests.cs
similarity index 99%
rename from Activout.RestClient.Test/RestClientTests.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/RestClientTests.cs
index f778ae4..ec19802 100644
--- a/Activout.RestClient.Test/RestClientTests.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/RestClientTests.cs
@@ -7,7 +7,7 @@
using System.Threading;
using System.Threading.Tasks;
using Activout.RestClient.Helpers.Implementation;
-using Activout.RestClient.Test.MovieReviews;
+using Activout.RestClient.Newtonsoft.Json.Test.MovieReviews;
using Microsoft.Extensions.Logging;
using Moq;
using Newtonsoft.Json;
@@ -15,7 +15,7 @@
using Xunit;
using Xunit.Abstractions;
-namespace Activout.RestClient.Test
+namespace Activout.RestClient.Newtonsoft.Json.Test
{
public class RestClientTests
{
@@ -37,6 +37,7 @@ public RestClientTests(ITestOutputHelper outputHelper)
private IRestClientBuilder CreateRestClientBuilder()
{
return _restClientFactory.CreateBuilder()
+ .WithNewtonsoftJson()
.Accept("application/json")
.ContentType("application/json")
.With(_loggerFactory.CreateLogger())
diff --git a/Activout.RestClient.Test/SerializationOrderTest.cs b/Activout.RestClient.Newtonsoft.Json.Test/SerializationOrderTest.cs
similarity index 93%
rename from Activout.RestClient.Test/SerializationOrderTest.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/SerializationOrderTest.cs
index 36b8cab..032c3d6 100644
--- a/Activout.RestClient.Test/SerializationOrderTest.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/SerializationOrderTest.cs
@@ -2,13 +2,12 @@
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
-using Activout.RestClient.Serialization.Implementation;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using RichardSzalay.MockHttp;
using Xunit;
-namespace Activout.RestClient.Test
+namespace Activout.RestClient.Newtonsoft.Json.Test
{
public class SerializationOrderTest
{
@@ -64,7 +63,7 @@ public interface ISerializationOrderClient
private ISerializationOrderClient CreateClient(int orderOfJsonDeserializer)
{
return CreateRestClientBuilder()
- .With(new JsonDeserializer(new JsonSerializerSettings()
+ .With(new NewtonsoftJsonDeserializer(new JsonSerializerSettings()
{
ContractResolver = new DefaultContractResolver()
{
@@ -78,6 +77,7 @@ private ISerializationOrderClient CreateClient(int orderOfJsonDeserializer)
private IRestClientBuilder CreateRestClientBuilder()
{
return _restClientFactory.CreateBuilder()
+ .WithNewtonsoftJson()
.With(_mockHttp.ToHttpClient())
.BaseUri(new Uri(BaseUri));
}
diff --git a/Activout.RestClient.Test/SimpleValueObjectTest.cs b/Activout.RestClient.Newtonsoft.Json.Test/SimpleValueObjectTest.cs
similarity index 97%
rename from Activout.RestClient.Test/SimpleValueObjectTest.cs
rename to Activout.RestClient.Newtonsoft.Json.Test/SimpleValueObjectTest.cs
index e4ede52..a942464 100644
--- a/Activout.RestClient.Test/SimpleValueObjectTest.cs
+++ b/Activout.RestClient.Newtonsoft.Json.Test/SimpleValueObjectTest.cs
@@ -7,7 +7,7 @@
using RichardSzalay.MockHttp;
using Xunit;
-namespace Activout.RestClient.Test
+namespace Activout.RestClient.Newtonsoft.Json.Test
{
public class MySimpleValueObject
{
@@ -128,6 +128,7 @@ private IValueObjectClient CreateClient()
{
return _restClientFactory.CreateBuilder()
.With(_mockHttp.ToHttpClient())
+ .WithNewtonsoftJson()
.BaseUri(new Uri(BaseUri))
.Build();
}
diff --git a/Activout.RestClient.Newtonsoft.Json/Activout.RestClient.Newtonsoft.Json.csproj b/Activout.RestClient.Newtonsoft.Json/Activout.RestClient.Newtonsoft.Json.csproj
new file mode 100644
index 0000000..b4d8fa4
--- /dev/null
+++ b/Activout.RestClient.Newtonsoft.Json/Activout.RestClient.Newtonsoft.Json.csproj
@@ -0,0 +1,23 @@
+
+
+
+
+ net8.0
+ enable
+ enable
+ README.md
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activout.RestClient/Serialization/Implementation/JsonHelper.cs b/Activout.RestClient.Newtonsoft.Json/JsonHelper.cs
similarity index 75%
rename from Activout.RestClient/Serialization/Implementation/JsonHelper.cs
rename to Activout.RestClient.Newtonsoft.Json/JsonHelper.cs
index 721978d..c902b4d 100644
--- a/Activout.RestClient/Serialization/Implementation/JsonHelper.cs
+++ b/Activout.RestClient.Newtonsoft.Json/JsonHelper.cs
@@ -1,6 +1,6 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
-namespace Activout.RestClient.Serialization.Implementation
+namespace Activout.RestClient.Newtonsoft.Json
{
public static class JsonHelper
{
@@ -14,4 +14,4 @@ static JsonHelper()
public static IReadOnlyCollection SupportedMediaTypes { get; }
}
-}
\ No newline at end of file
+}
diff --git a/Activout.RestClient.Newtonsoft.Json/LICENSE b/Activout.RestClient.Newtonsoft.Json/LICENSE
new file mode 100644
index 0000000..09f33ff
--- /dev/null
+++ b/Activout.RestClient.Newtonsoft.Json/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2025 David Eriksson
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/Activout.RestClient.Newtonsoft.Json/NewtonsoftJsonDeserializer.cs b/Activout.RestClient.Newtonsoft.Json/NewtonsoftJsonDeserializer.cs
new file mode 100644
index 0000000..4ae0bd4
--- /dev/null
+++ b/Activout.RestClient.Newtonsoft.Json/NewtonsoftJsonDeserializer.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Http;
+using System.Threading.Tasks;
+using Activout.RestClient.Serialization;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+
+namespace Activout.RestClient.Newtonsoft.Json;
+
+public class NewtonsoftJsonDeserializer : IDeserializer
+{
+ private readonly JsonSerializerSettings _jsonSerializerSettings;
+
+ public IReadOnlyCollection SupportedMediaTypes => JsonHelper.SupportedMediaTypes;
+
+ public NewtonsoftJsonDeserializer(JsonSerializerSettings jsonSerializerSettings)
+ {
+ _jsonSerializerSettings = jsonSerializerSettings;
+ }
+
+ public int Order { get; set; }
+
+ public async Task