Skip to content

Commit 922bf07

Browse files
committed
Cleanup before the release
1 parent ddcb137 commit 922bf07

29 files changed

+134
-254
lines changed

src/Directory.Build.props

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
<PublicSign Condition="'$(OS)' != 'Windows_NT'">true</PublicSign>
1414
<UpdateVersionProperties>true</UpdateVersionProperties>
1515
<PublishRepositoryUrl>true</PublishRepositoryUrl>
16-
<LangVersion>8</LangVersion>
16+
<LangVersion>9</LangVersion>
17+
<Nullable>enable</Nullable>
1718
<IncludeSymbols>true</IncludeSymbols>
1819
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
1920
</PropertyGroup>
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
using System;
22
using System.IO;
3+
using JetBrains.Annotations;
34
using Newtonsoft.Json;
45
using Newtonsoft.Json.Serialization;
56
using RestSharp.Serialization;
67

7-
namespace RestSharp.Serializers.NewtonsoftJson
8-
{
9-
public class JsonNetSerializer : IRestSerializer
10-
{
8+
namespace RestSharp.Serializers.NewtonsoftJson {
9+
public class JsonNetSerializer : IRestSerializer {
1110
/// <summary>
1211
/// Default serialization settings:
1312
/// - Camel-case contract resolver
@@ -16,8 +15,7 @@ public class JsonNetSerializer : IRestSerializer
1615
/// - Non-indented formatting
1716
/// - Allow using non-public constructors
1817
/// </summary>
19-
public static readonly JsonSerializerSettings DefaultSettings = new JsonSerializerSettings
20-
{
18+
public static readonly JsonSerializerSettings DefaultSettings = new() {
2119
ContractResolver = new CamelCasePropertyNamesContractResolver(),
2220
DefaultValueHandling = DefaultValueHandling.Include,
2321
TypeNameHandling = TypeNameHandling.None,
@@ -26,7 +24,7 @@ public class JsonNetSerializer : IRestSerializer
2624
ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor
2725
};
2826

29-
[ThreadStatic] static WriterBuffer tWriterBuffer;
27+
[ThreadStatic] static WriterBuffer? tWriterBuffer;
3028

3129
readonly JsonSerializer _serializer;
3230

@@ -41,31 +39,30 @@ public class JsonNetSerializer : IRestSerializer
4139
/// <param name="settings">Json.Net serializer settings</param>
4240
public JsonNetSerializer(JsonSerializerSettings settings) => _serializer = JsonSerializer.Create(settings);
4341

44-
public string Serialize(object obj)
45-
{
42+
public string? Serialize(object? obj) {
43+
if (obj == null) return null;
44+
4645
using var writerBuffer = tWriterBuffer ??= new WriterBuffer(_serializer);
4746

4847
_serializer.Serialize(writerBuffer.GetJsonTextWriter(), obj, obj.GetType());
4948

5049
return writerBuffer.GetStringWriter().ToString();
5150
}
5251

53-
public string Serialize(Parameter bodyParameter) => Serialize(bodyParameter.Value);
52+
public string? Serialize(Parameter bodyParameter) => Serialize(bodyParameter.Value);
5453

55-
public T Deserialize<T>(IRestResponse response)
56-
{
57-
using var reader = new JsonTextReader(new StringReader(response.Content)) {CloseInput = true};
54+
public T? Deserialize<T>(IRestResponse response) {
55+
using var reader = new JsonTextReader(new StringReader(response.Content)) { CloseInput = true };
5856

5957
return _serializer.Deserialize<T>(reader);
6058
}
6159

62-
public string[] SupportedContentTypes { get; } =
63-
{
60+
public string[] SupportedContentTypes { get; } = {
6461
"application/json", "text/json", "text/x-json", "text/javascript", "*+json"
6562
};
6663

6764
public string ContentType { get; set; } = "application/json";
6865

69-
public DataFormat DataFormat { get; } = DataFormat.Json;
66+
public DataFormat DataFormat => DataFormat.Json;
7067
}
71-
}
68+
}

src/RestSharp.Serializers.NewtonsoftJson/RestClientExtensions.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
using JetBrains.Annotations;
12
using Newtonsoft.Json;
23

3-
namespace RestSharp.Serializers.NewtonsoftJson
4-
{
5-
public static class RestClientExtensions
6-
{
4+
namespace RestSharp.Serializers.NewtonsoftJson {
5+
[PublicAPI]
6+
public static class RestClientExtensions {
77
/// <summary>
88
/// Use Newtonsoft.Json serializer with default settings
99
/// </summary>

src/RestSharp.Serializers.NewtonsoftJson/RestRequestExtensions.cs

+7-9
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,26 @@
1+
using JetBrains.Annotations;
12
using Newtonsoft.Json;
23

3-
namespace RestSharp.Serializers.NewtonsoftJson
4-
{
5-
public static class RestRequestExtensions
6-
{
4+
namespace RestSharp.Serializers.NewtonsoftJson {
5+
[PublicAPI]
6+
public static class RestRequestExtensions {
77
/// <summary>
88
/// Use Newtonsoft.Json serializer for a single request
99
/// </summary>
1010
/// <param name="request"></param>
1111
/// <returns></returns>
12-
public static IRestRequest UseNewtonsoftJson(this IRestRequest request)
13-
{
12+
public static IRestRequest UseNewtonsoftJson(this IRestRequest request) {
1413
request.JsonSerializer = new JsonNetSerializer();
1514
return request;
1615
}
17-
16+
1817
/// <summary>
1918
/// Use Newtonsoft.Json serializer for a single request, with custom settings
2019
/// </summary>
2120
/// <param name="request"></param>
2221
/// <param name="settings">Newtonsoft.Json serializer settings</param>
2322
/// <returns></returns>
24-
public static IRestRequest UseNewtonsoftJson(this IRestRequest request, JsonSerializerSettings settings)
25-
{
23+
public static IRestRequest UseNewtonsoftJson(this IRestRequest request, JsonSerializerSettings settings) {
2624
request.JsonSerializer = new JsonNetSerializer(settings);
2725
return request;
2826
}

src/RestSharp.Serializers.NewtonsoftJson/WriterBuffer.cs

+9-11
Original file line numberDiff line numberDiff line change
@@ -34,25 +34,23 @@
3434
using System.Text;
3535
using Newtonsoft.Json;
3636

37-
namespace RestSharp.Serializers.NewtonsoftJson
38-
{
39-
public sealed class WriterBuffer : IDisposable
40-
{
41-
private readonly StringWriter _stringWriter;
42-
private readonly JsonTextWriter _jsonTextWriter;
37+
namespace RestSharp.Serializers.NewtonsoftJson {
38+
sealed class WriterBuffer : IDisposable {
39+
readonly StringWriter _stringWriter;
40+
readonly JsonTextWriter _jsonTextWriter;
4341

44-
public WriterBuffer(JsonSerializer jsonSerializer)
45-
{
42+
public WriterBuffer(JsonSerializer jsonSerializer) {
4643
_stringWriter = new StringWriter(new StringBuilder(256), CultureInfo.InvariantCulture);
4744

48-
_jsonTextWriter = new JsonTextWriter(_stringWriter)
49-
{
45+
_jsonTextWriter = new JsonTextWriter(_stringWriter) {
5046
Formatting = jsonSerializer.Formatting, CloseOutput = false
5147
};
5248
}
5349

5450
public JsonTextWriter GetJsonTextWriter() => _jsonTextWriter;
51+
5552
public StringWriter GetStringWriter() => _stringWriter;
53+
5654
public void Dispose() => _stringWriter.GetStringBuilder().Clear();
5755
}
58-
}
56+
}

src/RestSharp.Serializers.SystemTextJson/RestClientExtensions.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
using System.Text.Json;
2+
using JetBrains.Annotations;
23

3-
namespace RestSharp.Serializers.SystemTextJson
4-
{
5-
public static class RestClientExtensions
6-
{
4+
namespace RestSharp.Serializers.SystemTextJson {
5+
[PublicAPI]
6+
public static class RestClientExtensions {
77
/// <summary>
88
/// Use System.Text.Json serializer with default settings
99
/// </summary>

src/RestSharp.Serializers.SystemTextJson/RestRequestExtensions.cs

+7-9
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,26 @@
11
using System.Text.Json;
2+
using JetBrains.Annotations;
23

3-
namespace RestSharp.Serializers.SystemTextJson
4-
{
5-
public static class RestRequestExtensions
6-
{
4+
namespace RestSharp.Serializers.SystemTextJson {
5+
[PublicAPI]
6+
public static class RestRequestExtensions {
77
/// <summary>
88
/// Use System.Text.Json serializer for a single request
99
/// </summary>
1010
/// <param name="request"></param>
1111
/// <returns></returns>
12-
public static IRestRequest UseSystemTextJson(this IRestRequest request)
13-
{
12+
public static IRestRequest UseSystemTextJson(this IRestRequest request) {
1413
request.JsonSerializer = new SystemTextJsonSerializer();
1514
return request;
1615
}
17-
16+
1817
/// <summary>
1918
/// Use System.Text.Json serializer for a single request with custom options
2019
/// </summary>
2120
/// <param name="request"></param>
2221
/// <param name="options">System.Text.Json serializer options</param>
2322
/// <returns></returns>
24-
public static IRestRequest UseSystemTextJson(this IRestRequest request, JsonSerializerOptions options)
25-
{
23+
public static IRestRequest UseSystemTextJson(this IRestRequest request, JsonSerializerOptions options) {
2624
request.JsonSerializer = new SystemTextJsonSerializer(options);
2725
return request;
2826
}

src/RestSharp.Serializers.SystemTextJson/RestSharp.Serializers.SystemTextJson.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
<TargetFrameworks>netstandard2.0;net461</TargetFrameworks>
44
</PropertyGroup>
55
<ItemGroup>
6-
<PackageReference Include="System.Text.Json" Version="5.0.*"/>
6+
<PackageReference Include="System.Text.Json" Version="5.0.*" />
77
</ItemGroup>
88
<ItemGroup>
9-
<ProjectReference Include="..\RestSharp\RestSharp.csproj"/>
9+
<ProjectReference Include="..\RestSharp\RestSharp.csproj" />
1010
</ItemGroup>
1111
</Project>

src/RestSharp.Serializers.SystemTextJson/SystemTextJsonSerializer.cs

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.Text.Json;
2+
using JetBrains.Annotations;
23
using RestSharp.Serialization;
34

45
namespace RestSharp.Serializers.SystemTextJson
@@ -18,11 +19,11 @@ public class SystemTextJsonSerializer : IRestSerializer
1819
/// <param name="options">Json serializer settings</param>
1920
public SystemTextJsonSerializer(JsonSerializerOptions options) => _options = options;
2021

21-
public string Serialize(object obj) => JsonSerializer.Serialize(obj, _options);
22+
public string? Serialize(object? obj) => obj == null ? null : JsonSerializer.Serialize(obj, _options);
2223

23-
public string Serialize(Parameter bodyParameter) => Serialize(bodyParameter.Value);
24+
public string? Serialize(Parameter bodyParameter) => Serialize(bodyParameter.Value);
2425

25-
public T Deserialize<T>(IRestResponse response) => JsonSerializer.Deserialize<T>(response.Content, _options);
26+
public T? Deserialize<T>(IRestResponse response) => JsonSerializer.Deserialize<T>(response.Content, _options);
2627

2728
public string[] SupportedContentTypes { get; } =
2829
{
@@ -31,6 +32,6 @@ public class SystemTextJsonSerializer : IRestSerializer
3132

3233
public string ContentType { get; set; } = "application/json";
3334

34-
public DataFormat DataFormat { get; } = DataFormat.Json;
35+
public DataFormat DataFormat => DataFormat.Json;
3536
}
3637
}

src/RestSharp.Serializers.Utf8Json/RestClientExtensions.cs

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
1+
using JetBrains.Annotations;
22
using Utf8Json;
33

4-
namespace RestSharp.Serializers.Utf8Json
5-
{
6-
public static class RestClientExtensions
7-
{
4+
namespace RestSharp.Serializers.Utf8Json {
5+
[PublicAPI]
6+
public static class RestClientExtensions {
87
/// <summary>
98
/// Use Utf8Json serializer with default formatter resolver
109
/// </summary>

src/RestSharp.Serializers.Utf8Json/RestRequestExtensions.cs

+7-9
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,26 @@
1+
using JetBrains.Annotations;
12
using Utf8Json;
23

3-
namespace RestSharp.Serializers.Utf8Json
4-
{
5-
public static class RestRequestExtensions
6-
{
4+
namespace RestSharp.Serializers.Utf8Json {
5+
[PublicAPI]
6+
public static class RestRequestExtensions {
77
/// <summary>
88
/// Use Utf8Json serializer for a single request
99
/// </summary>
1010
/// <param name="request"></param>
1111
/// <returns></returns>
12-
public static IRestRequest UseUtf8Json(this IRestRequest request)
13-
{
12+
public static IRestRequest UseUtf8Json(this IRestRequest request) {
1413
request.JsonSerializer = new Utf8JsonSerializer();
1514
return request;
1615
}
17-
16+
1817
/// <summary>
1918
/// Use Utf8Json serializer for a single request
2019
/// </summary>
2120
/// <param name="request"></param>
2221
/// <param name="resolver">JSON formatter resolver instance to provide custom options to Utf8Json</param>
2322
/// <returns></returns>
24-
public static IRestRequest UseUtf8Json(this IRestRequest request, IJsonFormatterResolver resolver)
25-
{
23+
public static IRestRequest UseUtf8Json(this IRestRequest request, IJsonFormatterResolver resolver) {
2624
request.JsonSerializer = new Utf8JsonSerializer(resolver);
2725
return request;
2826
}

src/RestSharp.Serializers.Utf8Json/RestSharp.Serializers.Utf8Json.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
<TargetFrameworks>netstandard2.0;net452</TargetFrameworks>
44
</PropertyGroup>
55
<ItemGroup>
6-
<PackageReference Include="Utf8Json" Version="1.3.7"/>
6+
<PackageReference Include="Utf8Json" Version="1.3.7" />
77
</ItemGroup>
88
<ItemGroup>
9-
<ProjectReference Include="..\RestSharp\RestSharp.csproj"/>
9+
<ProjectReference Include="..\RestSharp\RestSharp.csproj" />
1010
</ItemGroup>
1111
</Project>

src/RestSharp.Serializers.Utf8Json/Utf8JsonSerializer.cs

+8-11
Original file line numberDiff line numberDiff line change
@@ -32,27 +32,24 @@
3232
using Utf8Json;
3333
using Utf8Json.Resolvers;
3434

35-
namespace RestSharp.Serializers.Utf8Json
36-
{
37-
public class Utf8JsonSerializer : IRestSerializer
38-
{
39-
public Utf8JsonSerializer(IJsonFormatterResolver resolver = null) => Resolver = resolver ?? StandardResolver.AllowPrivateExcludeNullCamelCase;
35+
namespace RestSharp.Serializers.Utf8Json {
36+
public class Utf8JsonSerializer : IRestSerializer {
37+
public Utf8JsonSerializer(IJsonFormatterResolver? resolver = null) => Resolver = resolver ?? StandardResolver.AllowPrivateExcludeNullCamelCase;
4038

4139
IJsonFormatterResolver Resolver { get; }
4240

43-
public string Serialize(object obj) => JsonSerializer.NonGeneric.ToJsonString(obj, Resolver);
41+
public string? Serialize(object? obj) => obj == null ? null : JsonSerializer.NonGeneric.ToJsonString(obj, Resolver);
4442

45-
public string Serialize(Parameter parameter) => Serialize(parameter.Value);
43+
public string? Serialize(Parameter parameter) => Serialize(parameter.Value);
4644

47-
public T Deserialize<T>(IRestResponse response) => JsonSerializer.Deserialize<T>(response.RawBytes, Resolver);
45+
public T? Deserialize<T>(IRestResponse response) => JsonSerializer.Deserialize<T?>(response.RawBytes, Resolver);
4846

49-
public string[] SupportedContentTypes { get; } =
50-
{
47+
public string[] SupportedContentTypes { get; } = {
5148
"application/json", "text/json", "text/x-json", "text/javascript", "*+json"
5249
};
5350

5451
public string ContentType { get; set; } = "application/json";
5552

56-
public DataFormat DataFormat { get; } = DataFormat.Json;
53+
public DataFormat DataFormat => DataFormat.Json;
5754
}
5855
}

src/RestSharp/Authenticators/OAuth/OAuth1Authenticator.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ void AddOAuthData(IRestClient client, IRestRequest request, OAuthWorkflow workfl
274274
// if this change causes trouble we need to introduce a flag indicating the specific OAuth implementation level,
275275
// or implement a separate class for each OAuth version
276276
static bool BaseQuery(Parameter x)
277-
=> x.Type == ParameterType.GetOrPost || x.Type == ParameterType.QueryString || x.Type == ParameterType.QueryStringWithoutEncode;
277+
=> x.Type is ParameterType.GetOrPost or ParameterType.QueryString or ParameterType.QueryStringWithoutEncode;
278278

279279
var query =
280280
request.AlwaysMultipartFormData || request.Files.Count > 0
@@ -334,6 +334,6 @@ string GetAuthorizationHeader()
334334

335335
static class ParametersExtensions
336336
{
337-
internal static IEnumerable<WebPair> ToWebParameters(this IEnumerable<Parameter> p) => p.Select(x => new WebPair(x.Name, x.Value.ToString(), false));
337+
internal static IEnumerable<WebPair> ToWebParameters(this IEnumerable<Parameter> p) => p.Select(x => new WebPair(x.Name, x.Value.ToString()));
338338
}
339339
}

src/RestSharp/Authenticators/OAuth/WebPair.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public WebPair(string name, string value, bool encode = false)
3131
public string WebValue { get; }
3232
public bool Encode { get; }
3333

34-
internal static WebPairComparer Comparer { get; } = new WebPairComparer();
34+
internal static WebPairComparer Comparer { get; } = new();
3535

3636
internal class WebPairComparer : IComparer<WebPair>
3737
{

0 commit comments

Comments
 (0)