Skip to content

Commit c7b1f70

Browse files
committed
Upgrade to .NET 9.0
1 parent c0b8bd6 commit c7b1f70

34 files changed

+146
-128
lines changed

.github/workflows/build-and-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ on:
1313
- '**.sln'
1414

1515
env:
16-
DOTNET_VERSION: '8.0.x' # SDK version
16+
DOTNET_VERSION: '9.0.x' # SDK version
1717

1818
jobs:
1919
build:

.github/workflows/codeql-analysis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
- name: Setup .NET
5555
uses: actions/setup-dotnet@main
5656
with:
57-
dotnet-version: 8.0.x
57+
dotnet-version: 9.0.x
5858

5959
- name: Install dependencies
6060
run: dotnet restore

Directory.Packages.props

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@
88
<PackageVersion Include="GitHub.Actions.Core" Version="8.1.1" />
99
<PackageVersion Include="MarkdownBuilder" Version="0.2.0" />
1010
<PackageVersion Include="Microsoft.Deployment.DotNet.Releases" Version="1.0.0" />
11-
<PackageVersion Include="Microsoft.Extensions.Caching.Abstractions" Version="8.0.0" />
12-
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="8.0.1" />
13-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.2" />
11+
<PackageVersion Include="Microsoft.Extensions.Caching.Abstractions" Version="9.0.0" />
12+
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="9.0.0" />
13+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.0" />
1414
<PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="8.0.0" />
1515
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.0" />
16-
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
17-
<PackageVersion Include="Microsoft.Extensions.Http" Version="8.0.0" />
18-
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.2" />
16+
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="9.0.0" />
17+
<PackageVersion Include="Microsoft.Extensions.Http" Version="9.0.0" />
18+
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0" />
1919
<PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.0" />
2020
<PackageVersion Include="Octokit" Version="13.0.1" />
21-
<PackageVersion Include="Pathological.ProjectSystem" Version="8.0.4" />
21+
<PackageVersion Include="Pathological.ProjectSystem" Version="9.0.0" />
2222
<PackageVersion Include="System.Linq.Async" Version="6.0.1" />
2323
</ItemGroup>
2424
</Project>

src/DotNet.Extensions/DotNet.Extensions.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net8.0</TargetFramework>
4+
<TargetFramework>net9.0</TargetFramework>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
77
</PropertyGroup>

src/DotNet.Extensions/GlobalUsings.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@
99
global using System.Text.Encodings.Web;
1010
global using System.Text.Json;
1111
global using System.Text.Json.Serialization;
12+
global using System.Text.Json.Serialization.Metadata;
1213
global using System.Threading.Tasks;
1314
global using static System.Text.Json.JsonSerializer;

src/DotNet.Extensions/ObjectExtensions.cs

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,11 @@ namespace DotNet.Extensions;
55

66
public static class ObjectExtensions
77
{
8-
static readonly Lazy<JsonSerializerOptions> s_lazyOptions = new(() => new()
9-
{
10-
Converters = { new JsonStringEnumConverter(JsonNamingPolicy.CamelCase) },
11-
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
12-
NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString,
13-
PropertyNameCaseInsensitive = true,
14-
AllowTrailingCommas = true,
15-
});
8+
public static string? ToJson<T>(this T value, JsonTypeInfo<T> jsonTypeInfo) =>
9+
value is null ? null : Serialize(value, jsonTypeInfo);
1610

17-
public static string? ToJson(this object value, JsonSerializerOptions? options = default) =>
18-
value is null ? null : Serialize(value, options ?? s_lazyOptions.Value);
19-
20-
public static T? FromJson<T>(this string? json, JsonSerializerOptions? options = default) =>
21-
string.IsNullOrWhiteSpace(json) ? default : Deserialize<T>(json, options ?? s_lazyOptions.Value);
11+
public static T? FromJson<T>(this string? json, JsonTypeInfo<T> jsonTypeInfo) =>
12+
string.IsNullOrWhiteSpace(json) ? default : Deserialize<T>(json, jsonTypeInfo);
2213

2314
public static DateTime? ToDateTime(this string? value) =>
2415
value is null ? default : DateTime.TryParse(value, out global::System.DateTime dateTime) ? dateTime : null;

src/DotNet.GitHub/DotNet.GitHub.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net8.0</TargetFramework>
4+
<TargetFramework>net9.0</TargetFramework>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
77
</PropertyGroup>

src/DotNet.GitHub/GitHubGraphQLClient.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,6 @@ ... on Issue {
2525
""";
2626

2727
static readonly Uri s_graphQLUri = new("https://api.github.com/graphql");
28-
static readonly JsonSerializerOptions s_options = new()
29-
{
30-
Converters = { new JsonStringEnumConverter(JsonNamingPolicy.CamelCase) },
31-
PropertyNameCaseInsensitive = true
32-
};
3328

3429
readonly HttpClient _httpClient;
3530
readonly ILogger<GitHubGraphQLClient> _logger;
@@ -63,7 +58,8 @@ public GitHubGraphQLClient(HttpClient httpClient, ILogger<GitHubGraphQLClient> l
6358
response.EnsureSuccessStatusCode();
6459

6560
string json = await response.Content.ReadAsStringAsync();
66-
GraphQLResult<ExistingIssue>? result = json.FromJson<GraphQLResult<ExistingIssue>>(s_options);
61+
GraphQLResult<ExistingIssue>? result = json.FromJson<GraphQLResult<ExistingIssue>>(
62+
GitHubJsonSerializerContext.Default.GraphQLResultExistingIssue);
6763

6864
return (false, result?.Data?.Search?.Nodes
6965
?.Where(i => i.State == ItemState.Open)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
namespace DotNet.GitHub;
5+
6+
[JsonSourceGenerationOptions(
7+
PropertyNameCaseInsensitive = true,
8+
Converters = [ typeof(JsonStringEnumConverter) ]
9+
)]
10+
[JsonSerializable(typeof(GraphQLRequest))]
11+
[JsonSerializable(typeof(ExistingIssue))]
12+
[JsonSerializable(typeof(GraphQLResult<ExistingIssue>))]
13+
internal partial class GitHubJsonSerializerContext : JsonSerializerContext
14+
{
15+
}

src/DotNet.GitHub/GraphQLRequest.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ public record GraphQLRequest
99
public string Query { get; init; } = "";
1010

1111
[JsonPropertyName("variables")]
12-
public Dictionary<string, string> Variables { get; init; } = new();
12+
public Dictionary<string, string> Variables { get; init; } = [];
1313

14-
public override string ToString() => this.ToJson()!;
14+
public override string ToString() =>
15+
this.ToJson(GitHubJsonSerializerContext.Default.GraphQLRequest)!;
1516
}

0 commit comments

Comments
 (0)