Skip to content

Commit 0ce96b4

Browse files
committed
React to STJ updates
1 parent 3a6588f commit 0ce96b4

File tree

13 files changed

+40
-102
lines changed

13 files changed

+40
-102
lines changed

src/Components/Server/src/Circuits/CircuitHost.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ internal class CircuitHost : IAsyncDisposable
2525
private readonly ILogger _logger;
2626
private bool _initialized;
2727
private bool _disposed;
28-
private JsonSourceGeneration.JsonContext _jsonContext;
28+
private WebEventJsonContext _jsonContext;
2929

3030
// This event is fired when there's an unrecoverable exception coming from the circuit, and
3131
// it need so be torn down. The registry listens to this even so that the circuit can

src/Components/Server/src/JsonContext.cs

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/Components/Shared/src/WebEventData.cs

Lines changed: 22 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,7 @@
88
using System.Text.Json;
99
using System.Text.Json.Serialization;
1010
using System.Text.Json.Serialization.Metadata;
11-
using Microsoft.AspNetCore.Components;
1211
using Microsoft.AspNetCore.Components.RenderTree;
13-
using Microsoft.AspNetCore.Components.Web;
14-
15-
[assembly: JsonSerializable(typeof(WebEventDescriptor))]
16-
[assembly: JsonSerializable(typeof(EventArgs))]
17-
[assembly: JsonSerializable(typeof(ChangeEventArgs))]
18-
[assembly: JsonSerializable(typeof(ClipboardEventArgs))]
19-
[assembly: JsonSerializable(typeof(DragEventArgs))]
20-
[assembly: JsonSerializable(typeof(ErrorEventArgs))]
21-
[assembly: JsonSerializable(typeof(FocusEventArgs))]
22-
[assembly: JsonSerializable(typeof(KeyboardEventArgs))]
23-
[assembly: JsonSerializable(typeof(MouseEventArgs))]
24-
[assembly: JsonSerializable(typeof(PointerEventArgs))]
25-
[assembly: JsonSerializable(typeof(ProgressEventArgs))]
26-
[assembly: JsonSerializable(typeof(TouchEventArgs))]
27-
[assembly: JsonSerializable(typeof(WheelEventArgs))]
2812

2913
namespace Microsoft.AspNetCore.Components.Web
3014
{
@@ -34,7 +18,7 @@ internal class WebEventData
3418
// once the event ID (and possibly the type of the eventArgs) becomes known.
3519
public static WebEventData Parse(
3620
Renderer renderer,
37-
IWebEventJsonSerializerContext jsonSerializerContext,
21+
WebEventJsonContext jsonSerializerContext,
3822
string eventDescriptorJson,
3923
string eventArgsJson)
4024
{
@@ -57,7 +41,7 @@ public static WebEventData Parse(
5741

5842
public static WebEventData Parse(
5943
Renderer renderer,
60-
IWebEventJsonSerializerContext jsonSerializerContext,
44+
WebEventJsonContext jsonSerializerContext,
6145
WebEventDescriptor eventDescriptor,
6246
string eventArgsJson)
6347
{
@@ -87,7 +71,7 @@ private WebEventData(int browserRendererId, ulong eventHandlerId, EventFieldInfo
8771

8872
private static EventArgs ParseEventArgsJson(
8973
Renderer renderer,
90-
IWebEventJsonSerializerContext jsonSerializerContext,
74+
WebEventJsonContext jsonSerializerContext,
9175
ulong eventHandlerId,
9276
string eventName,
9377
string eventArgsJson)
@@ -112,7 +96,7 @@ private static EventArgs ParseEventArgsJson(
11296
private static bool TryDeserializeStandardWebEventArgs(
11397
string eventName,
11498
string eventArgsJson,
115-
IWebEventJsonSerializerContext jsonSerializerContext,
99+
WebEventJsonContext jsonSerializerContext,
116100
[NotNullWhen(true)] out EventArgs? eventArgs)
117101
{
118102
// For back-compatibility, we recognize the built-in list of web event names and hard-code
@@ -252,7 +236,7 @@ private static bool TryDeserializeStandardWebEventArgs(
252236

253237
static T Deserialize<T>(string json, JsonTypeInfo<T?> jsonTypeInfo) => JsonSerializer.Deserialize(json, jsonTypeInfo)!;
254238

255-
private static ChangeEventArgs DeserializeChangeEventArgs(string eventArgsJson, IWebEventJsonSerializerContext jsonSerializerContext)
239+
private static ChangeEventArgs DeserializeChangeEventArgs(string eventArgsJson, WebEventJsonContext jsonSerializerContext)
256240
{
257241
var changeArgs = Deserialize(eventArgsJson, jsonSerializerContext.ChangeEventArgs);
258242
var jsonElement = (JsonElement)changeArgs.Value!;
@@ -273,28 +257,23 @@ private static ChangeEventArgs DeserializeChangeEventArgs(string eventArgsJson,
273257
}
274258
return changeArgs;
275259
}
260+
}
276261

277-
#nullable disable
278-
// WebView has different nullability settings compared to Server and WebAssembly
279-
// which weirds out JSON's nullability for these types. Disable nullability for this contract
280-
// until we can update everything to haave uniform nullability.
281-
internal interface IWebEventJsonSerializerContext
282-
{
283-
JsonSerializerOptions Options { get; }
284-
285-
JsonTypeInfo<ChangeEventArgs> ChangeEventArgs { get; }
286-
JsonTypeInfo<WebEventDescriptor> WebEventDescriptor { get; }
287-
JsonTypeInfo<ClipboardEventArgs> ClipboardEventArgs { get; }
288-
JsonTypeInfo<DragEventArgs> DragEventArgs { get; }
289-
JsonTypeInfo<FocusEventArgs> FocusEventArgs { get; }
290-
JsonTypeInfo<KeyboardEventArgs> KeyboardEventArgs { get; }
291-
JsonTypeInfo<MouseEventArgs> MouseEventArgs { get; }
292-
JsonTypeInfo<ErrorEventArgs> ErrorEventArgs { get; }
293-
JsonTypeInfo<ProgressEventArgs> ProgressEventArgs { get; }
294-
JsonTypeInfo<TouchEventArgs> TouchEventArgs { get; }
295-
JsonTypeInfo<PointerEventArgs> PointerEventArgs { get; }
296-
JsonTypeInfo<WheelEventArgs> WheelEventArgs { get; }
297-
JsonTypeInfo<EventArgs> EventArgs { get; }
298-
}
262+
[JsonSerializable(typeof(WebEventDescriptor), GenerationMode = JsonSourceGenerationMode.Serialization)]
263+
[JsonSerializable(typeof(WebEventDescriptor), GenerationMode = JsonSourceGenerationMode.Serialization)]
264+
[JsonSerializable(typeof(EventArgs), GenerationMode = JsonSourceGenerationMode.Serialization)]
265+
[JsonSerializable(typeof(ChangeEventArgs), GenerationMode = JsonSourceGenerationMode.Serialization)]
266+
[JsonSerializable(typeof(ClipboardEventArgs), GenerationMode = JsonSourceGenerationMode.Serialization)]
267+
[JsonSerializable(typeof(DragEventArgs), GenerationMode = JsonSourceGenerationMode.Serialization)]
268+
[JsonSerializable(typeof(ErrorEventArgs), GenerationMode = JsonSourceGenerationMode.Serialization)]
269+
[JsonSerializable(typeof(FocusEventArgs), GenerationMode = JsonSourceGenerationMode.Serialization)]
270+
[JsonSerializable(typeof(KeyboardEventArgs), GenerationMode = JsonSourceGenerationMode.Serialization)]
271+
[JsonSerializable(typeof(MouseEventArgs), GenerationMode = JsonSourceGenerationMode.Serialization)]
272+
[JsonSerializable(typeof(PointerEventArgs), GenerationMode = JsonSourceGenerationMode.Serialization)]
273+
[JsonSerializable(typeof(ProgressEventArgs), GenerationMode = JsonSourceGenerationMode.Serialization)]
274+
[JsonSerializable(typeof(TouchEventArgs), GenerationMode = JsonSourceGenerationMode.Serialization)]
275+
[JsonSerializable(typeof(WheelEventArgs), GenerationMode = JsonSourceGenerationMode.Serialization)]
276+
internal sealed partial class WebEventJsonContext : JsonSerializerContext
277+
{
299278
}
300279
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// Copyright (c) .NET Foundation. All rights reserved.
2+
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
3+
4+
using System.Text.Json.Serialization;
5+
using Microsoft.AspNetCore.Components.RenderTree;
6+
7+
namespace Microsoft.AspNetCore.Components.Web
8+
{
9+
10+
}

src/Components/Web.JS/dist/Release/blazor.server.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Components/Web.JS/dist/Release/blazor.webview.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Components/Web/src/Microsoft.AspNetCore.Components.Web.csproj

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

33
<PropertyGroup>
44
<TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
@@ -16,6 +16,7 @@
1616
<Reference Include="Microsoft.Extensions.DependencyInjection" />
1717
<Reference Include="Microsoft.JSInterop" />
1818
<Reference Include="System.IO.Pipelines" />
19+
<Reference Include="System.Text.Json" PrivateAssets="All" />
1920
<Compile Include="$(SharedSourceRoot)LinkerFlags.cs" LinkBase="Shared" />
2021
</ItemGroup>
2122

src/Components/WebAssembly/WebAssembly/src/Infrastructure/JSInteropMethods.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Infrastructure
1919
[EditorBrowsable(EditorBrowsableState.Never)]
2020
public static class JSInteropMethods
2121
{
22-
private static JsonSourceGeneration.JsonContext? _jsonContext;
22+
private static WebEventJsonContext? _jsonContext;
2323

2424
/// <summary>
2525
/// For framework use only.

src/Components/WebAssembly/WebAssembly/src/Infrastructure/JsonContext.cs

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/Components/WebAssembly/WebAssembly/src/Microsoft.AspNetCore.Components.WebAssembly.WarningSuppressions.xml

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<argument>ILLink</argument>
1818
<argument>IL2026</argument>
1919
<property name="Scope">member</property>
20-
<property name="Target">M:Microsoft.AspNetCore.Components.Web.WebEventData.ParseEventArgsJson(Microsoft.AspNetCore.Components.RenderTree.Renderer,Microsoft.AspNetCore.Components.Web.WebEventData.IWebEventJsonSerializerContext,System.UInt64,System.String,System.String)</property>
20+
<property name="Target">M:Microsoft.AspNetCore.Components.Web.WebEventData.ParseEventArgsJson(Microsoft.AspNetCore.Components.RenderTree.Renderer,Microsoft.AspNetCore.Components.Web.WebEventJsonContext,System.UInt64,System.String,System.String)</property>
2121
</attribute>
2222
<attribute fullname="System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute">
2323
<argument>ILLink</argument>
@@ -49,23 +49,11 @@
4949
<property name="Scope">member</property>
5050
<property name="Target">M:Microsoft.Extensions.HotReload.HotReloadAgent.&lt;GetHandlerActions&gt;g__GetUpdateMethod|9_1(System.Type,System.String)</property>
5151
</attribute>
52-
<attribute fullname="System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute">
53-
<argument>ILLink</argument>
54-
<argument>IL2072</argument>
55-
<property name="Scope">member</property>
56-
<property name="Target">M:Microsoft.AspNetCore.Components.Web.WebEventData.ParseEventArgsJson(Microsoft.AspNetCore.Components.RenderTree.Renderer,Microsoft.AspNetCore.Components.Web.WebEventData.IWebEventJsonSerializerContext,System.UInt64,System.String,System.String)</property>
57-
</attribute>
5852
<attribute fullname="System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute">
5953
<argument>ILLink</argument>
6054
<argument>IL2072</argument>
6155
<property name="Scope">member</property>
6256
<property name="Target">M:Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder.InitializeRegisteredRootComponents(Microsoft.JSInterop.IJSUnmarshalledRuntime)</property>
6357
</attribute>
64-
<attribute fullname="System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute">
65-
<argument>ILLink</argument>
66-
<argument>IL2072</argument>
67-
<property name="Scope">member</property>
68-
<property name="Target">M:Microsoft.AspNetCore.Components.WebAssemblyComponentParameterDeserializer.DeserializeParameters(System.Collections.Generic.IList{Microsoft.AspNetCore.Components.ComponentParameter},System.Collections.Generic.IList{System.Object})</property>
69-
</attribute>
7058
</assembly>
7159
</linker>

0 commit comments

Comments
 (0)