fix: added usings, simplified imports, using JsonElement.Deserialize directly instead of JsonSerializer.Deserialize(JsonElement), removed some unused attributes

This commit is contained in:
Denny09310
2025-11-09 15:15:52 +01:00
parent 18b1317fc5
commit 4736bc640c
31 changed files with 65 additions and 60 deletions

View File

@@ -1,5 +1,6 @@
namespace ElectronNET.API
{
using ElectronNET.API.Serialization;
using ElectronNET.Common;
using System;
using System.Collections.Concurrent;
@@ -159,7 +160,7 @@
{
try
{
var value = JsonSerializer.Deserialize<T>(result, Serialization.ElectronJson.Options);
var value = result.Deserialize<T>(ElectronJson.Options);
this.tcs?.SetResult(value);
}
catch (Exception ex)

View File

@@ -1,5 +1,6 @@
using ElectronNET.API.Entities;
using ElectronNET.API.Extensions;
using ElectronNET.API.Serialization;
using ElectronNET.Common;
using System;
using System.Runtime.InteropServices;
@@ -1188,7 +1189,7 @@ namespace ElectronNET.API
{
BridgeConnector.Socket.Off("appGetLoginItemSettingsCompleted");
var result = JsonSerializer.Deserialize<LoginItemSettings>(loginItemSettings, Serialization.ElectronJson.Options);
var result = loginItemSettings.Deserialize<LoginItemSettings>(ElectronJson.Options);
taskCompletionSource.SetResult(result);
});

View File

@@ -310,7 +310,7 @@ namespace ElectronNET.API
/// </summary>
public event Action<UpdateInfo> OnUpdateAvailable
{
add => ApiEventManager.AddEvent("autoUpdater-update-available", GetHashCode(), _updateAvailable, value, (args) => JsonSerializer.Deserialize(args, ElectronJsonContext.Default.UpdateInfo));
add => ApiEventManager.AddEvent("autoUpdater-update-available", GetHashCode(), _updateAvailable, value, (args) => args.Deserialize(ElectronJsonContext.Default.UpdateInfo));
remove => ApiEventManager.RemoveEvent("autoUpdater-update-available", GetHashCode(), _updateAvailable, value);
}
@@ -321,7 +321,7 @@ namespace ElectronNET.API
/// </summary>
public event Action<UpdateInfo> OnUpdateNotAvailable
{
add => ApiEventManager.AddEvent("autoUpdater-update-not-available", GetHashCode(), _updateNotAvailable, value, (args) => JsonSerializer.Deserialize(args, ElectronJsonContext.Default.UpdateInfo));
add => ApiEventManager.AddEvent("autoUpdater-update-not-available", GetHashCode(), _updateNotAvailable, value, (args) => args.Deserialize(ElectronJsonContext.Default.UpdateInfo));
remove => ApiEventManager.RemoveEvent("autoUpdater-update-not-available", GetHashCode(), _updateNotAvailable, value);
}
@@ -332,7 +332,7 @@ namespace ElectronNET.API
/// </summary>
public event Action<ProgressInfo> OnDownloadProgress
{
add => ApiEventManager.AddEvent("autoUpdater-download-progress", GetHashCode(), _downloadProgress, value, (args) => JsonSerializer.Deserialize(args, ElectronJsonContext.Default.ProgressInfo));
add => ApiEventManager.AddEvent("autoUpdater-download-progress", GetHashCode(), _downloadProgress, value, (args) => args.Deserialize(ElectronJsonContext.Default.ProgressInfo));
remove => ApiEventManager.RemoveEvent("autoUpdater-download-progress", GetHashCode(), _downloadProgress, value);
}
@@ -343,7 +343,7 @@ namespace ElectronNET.API
/// </summary>
public event Action<UpdateInfo> OnUpdateDownloaded
{
add => ApiEventManager.AddEvent("autoUpdater-update-downloaded", GetHashCode(), _updateDownloaded, value, (args) => JsonSerializer.Deserialize(args, ElectronJsonContext.Default.UpdateInfo));
add => ApiEventManager.AddEvent("autoUpdater-update-downloaded", GetHashCode(), _updateDownloaded, value, (args) => args.Deserialize(ElectronJsonContext.Default.UpdateInfo));
remove => ApiEventManager.RemoveEvent("autoUpdater-update-downloaded", GetHashCode(), _updateDownloaded, value);
}

View File

@@ -143,7 +143,7 @@ namespace ElectronNET.API
{
BridgeConnector.Socket.Off("clipboard-readBookmark-Completed");
taskCompletionSource.SetResult(JsonSerializer.Deserialize<ReadBookmark>(bookmark, ElectronJson.Options));
taskCompletionSource.SetResult(bookmark.Deserialize<ReadBookmark>(ElectronJson.Options));
});
BridgeConnector.Socket.Emit("clipboard-readBookmark");
@@ -220,7 +220,7 @@ namespace ElectronNET.API
{
BridgeConnector.Socket.Off("clipboard-availableFormats-Completed");
taskCompletionSource.SetResult(JsonSerializer.Deserialize<string[]>(formats, ElectronJson.Options));
taskCompletionSource.SetResult(formats.Deserialize<string[]>(ElectronJson.Options));
});
BridgeConnector.Socket.Emit("clipboard-availableFormats", type);

View File

@@ -1,5 +1,7 @@
using ElectronNET.API.Entities;
using ElectronNET.API.Serialization;
using System;
using System.Text.Json;
namespace ElectronNET.API
{
@@ -30,13 +32,13 @@ namespace ElectronNET.API
{
if (_changed == null)
{
BridgeConnector.Socket.On<System.Text.Json.JsonElement>("webContents-session-cookies-changed" + Id, (args) =>
BridgeConnector.Socket.On<JsonElement>("webContents-session-cookies-changed" + Id, (args) =>
{
var e = args.EnumerateArray().GetEnumerator();
e.MoveNext();
var cookie = System.Text.Json.JsonSerializer.Deserialize<Cookie>(e.Current, Serialization.ElectronJson.Options);
var cookie = e.Current.Deserialize<Cookie>(ElectronJson.Options);
e.MoveNext();
var cause = System.Text.Json.JsonSerializer.Deserialize<CookieChangedCause>(e.Current, Serialization.ElectronJson.Options);
var cause = e.Current.Deserialize<CookieChangedCause>(ElectronJson.Options);
e.MoveNext();
var removed = e.Current.GetBoolean();
_changed(cookie, cause, removed);

View File

@@ -1,4 +1,5 @@
using ElectronNET.API.Entities;
using ElectronNET.API.Serialization;
using System;
using System.Text.Json;
using System.Threading.Tasks;
@@ -52,7 +53,7 @@ namespace ElectronNET.API
BridgeConnector.Socket.On<JsonElement>("showOpenDialogComplete" + guid, (filePaths) =>
{
BridgeConnector.Socket.Off("showOpenDialogComplete" + guid);
var result = JsonSerializer.Deserialize<string[]>(filePaths, Serialization.ElectronJson.Options);
var result = filePaths.Deserialize<string[]>(ElectronJson.Options);
taskCompletionSource.SetResult(result);
});

View File

@@ -1,5 +1,6 @@
using ElectronNET.API.Entities;
using ElectronNET.API.Extensions;
using ElectronNET.API.Serialization;
using System.Collections.Generic;
using System.Text.Json;
using System.Threading;
@@ -209,7 +210,7 @@ namespace ElectronNET.API
BridgeConnector.Socket.On<JsonElement>("dock-getMenu-completed", (menu) =>
{
BridgeConnector.Socket.Off("dock-getMenu-completed");
taskCompletionSource.SetResult(JsonSerializer.Deserialize<Menu>(menu, Serialization.ElectronJson.Options));
taskCompletionSource.SetResult(menu.Deserialize<Menu>(ElectronJson.Options));
});
BridgeConnector.Socket.Emit("dock-getMenu");

View File

@@ -213,7 +213,6 @@ namespace ElectronNET.API.Entities
/// The style of window title bar. Default is default. Possible values are:
/// 'default' | 'hidden' | 'hiddenInset' | 'customButtonsOnHover'
/// </summary>
[JsonConverter(typeof(JsonStringEnumConverter))]
public TitleBarStyle TitleBarStyle { get; set; }
/// <summary>
@@ -256,7 +255,6 @@ namespace ElectronNET.API.Entities
/// appearance-based, light, dark, titlebar, selection, menu, popover, sidebar,
/// medium-light or ultra-dark.
/// </summary>
[JsonConverter(typeof(JsonStringEnumConverter))]
public Vibrancy Vibrancy { get; set; }
/// <summary>

View File

@@ -6,7 +6,6 @@ namespace ElectronNET.API.Entities
/// <summary>
/// The cause of the change
/// </summary>
[JsonConverter(typeof(JsonStringEnumConverter))]
public enum CookieChangedCause
{
/// <summary>

View File

@@ -75,7 +75,6 @@ namespace ElectronNET.API.Entities
/// `touchScrollStarted`, `pointerDown`, `pointerUp`, `pointerMove`,
/// `pointerRawUpdate`, `pointerCancel` or `pointerCausedUaAction`.
/// </summary>
[JsonConverter(typeof(JsonStringEnumConverter))]
public InputEventType Type { get; set; }
}
}

View File

@@ -21,7 +21,6 @@ namespace ElectronNET.API.Entities
/// <summary>
/// One of the following: "tasks" | "frequent" | "recent" | "custom"
/// </summary>
[JsonConverter(typeof(JsonStringEnumConverter))]
public JumpListCategoryType Type { get; set; }
}
}

View File

@@ -52,7 +52,6 @@ namespace ElectronNET.API.Entities
/// <summary>
/// One of the following: "task" | "separator" | "file"
/// </summary>
[JsonConverter(typeof(JsonStringEnumConverter))]
public JumpListItemType Type { get; set; }
}
}

View File

@@ -19,13 +19,11 @@ namespace ElectronNET.API.Entities
/// Define the action of the menu item, when specified the click property will be
/// ignored.
/// </summary>
[JsonConverter(typeof(JsonStringEnumConverter))]
public MenuRole Role { get; set; }
/// <summary>
/// Can be normal, separator, submenu, checkbox or radio.
/// </summary>
[JsonConverter(typeof(JsonStringEnumConverter))]
public MenuType Type { get; set; }

View File

@@ -13,7 +13,6 @@ namespace ElectronNET.API.Entities
/// displays the same icon as "info", unless you set an icon using the "icon"
/// option. On macOS, both "warning" and "error" display the same warning icon.
/// </summary>
[JsonConverter(typeof(JsonStringEnumConverter))]
public MessageBoxType Type { get; set; }
/// <summary>

View File

@@ -1,3 +1,4 @@
using ElectronNET.API.Serialization;
using System;
using System.Collections.Generic;
using System.Drawing;
@@ -18,12 +19,12 @@ namespace ElectronNET.API.Entities
}
var scaledImages = value.GetAllScaledImages();
JsonSerializer.Serialize(writer, scaledImages, Serialization.ElectronJson.Options);
JsonSerializer.Serialize(writer, scaledImages, ElectronJson.Options);
}
public override NativeImage Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var dict = JsonSerializer.Deserialize<Dictionary<float, string>>(ref reader, Serialization.ElectronJson.Options);
var dict = JsonSerializer.Deserialize<Dictionary<float, string>>(ref reader, ElectronJson.Options);
var newDictionary = new Dictionary<float, Image>();
foreach (var item in dict)
{

View File

@@ -13,7 +13,6 @@ namespace ElectronNET.API.Entities
/// detach.Defaults to last used dock state.In undocked mode it's possible to dock
/// back.In detach mode it's not.
/// </summary>
[JsonConverter(typeof(JsonStringEnumConverter))]
public DevToolsMode Mode { get; set; }
}
}

View File

@@ -11,7 +11,6 @@ namespace ElectronNET.API.Entities
/// <summary>
/// Mode for the progress bar. Can be 'none' | 'normal' | 'indeterminate' | 'error' | 'paused'.
/// </summary>
[JsonConverter(typeof(JsonStringEnumConverter))]
public ProgressBarMode Mode { get; set; }
}
}

View File

@@ -28,7 +28,6 @@ namespace ElectronNET.API.Entities
/// Scheme of the authentication. Can be basic, digest, ntlm, negotiate.
/// Must be provided if removing by origin.
/// </summary>
[JsonConverter(typeof(JsonStringEnumConverter))]
public Scheme Scheme { get; set; }
/// <summary>

View File

@@ -1,3 +1,4 @@
using ElectronNET.API.Serialization;
using System;
using System.Text.Json;
using System.Threading.Tasks;
@@ -83,7 +84,7 @@ namespace ElectronNET.API
try
{
data = result.Deserialize<T>(Serialization.ElectronJson.Options);
data = result.Deserialize<T>(ElectronJson.Options);
}
catch (Exception exception)
{

View File

@@ -1,6 +1,8 @@
using ElectronNET.API.Serialization;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System.Threading.Tasks;
namespace ElectronNET.API
@@ -63,7 +65,7 @@ namespace ElectronNET.API
private static List<object> FormatArguments(System.Text.Json.JsonElement args)
{
var objectArray = System.Text.Json.JsonSerializer.Deserialize<object[]>(args, Serialization.ElectronJson.Options).ToList();
var objectArray = args.Deserialize<object[]>(ElectronJson.Options).ToList();
objectArray.RemoveAll(item => item is null);
return objectArray;
}

View File

@@ -1,4 +1,5 @@
using ElectronNET.API.Entities;
using ElectronNET.API.Serialization;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -90,7 +91,7 @@ namespace ElectronNET.API
BridgeConnector.Socket.Off("NotificationEventReply");
BridgeConnector.Socket.On<JsonElement>("NotificationEventReply", (args) =>
{
var arguments = args.Deserialize<string[]>(Serialization.ElectronJson.Options);
var arguments = args.Deserialize<string[]>(ElectronJson.Options);
_notificationOptions.Single(x => x.ReplyID == arguments[0]).OnReply(arguments[1]);
});
}
@@ -103,7 +104,7 @@ namespace ElectronNET.API
BridgeConnector.Socket.Off("NotificationEventAction");
BridgeConnector.Socket.On<JsonElement>("NotificationEventAction", (args) =>
{
var arguments = JsonSerializer.Deserialize<string[]>(args, Serialization.ElectronJson.Options);
var arguments = args.Deserialize<string[]>(ElectronJson.Options);
_notificationOptions.Single(x => x.ActionID == arguments[0]).OnAction(arguments[1]);
});
}

View File

@@ -1,4 +1,5 @@
using ElectronNET.API.Entities;
using ElectronNET.API.Serialization;
using System.Text.Json;
using System.Threading.Tasks;
@@ -74,7 +75,7 @@ namespace ElectronNET.API
BridgeConnector.Socket.On<JsonElement>("process-argv-Completed", (result) =>
{
BridgeConnector.Socket.Off("process-argv-Completed");
taskCompletionSource.SetResult(JsonSerializer.Deserialize<string[]>(result, Serialization.ElectronJson.Options));
taskCompletionSource.SetResult(result.Deserialize<string[]>(ElectronJson.Options));
});
BridgeConnector.Socket.Emit("process-argv");
@@ -117,7 +118,7 @@ namespace ElectronNET.API
BridgeConnector.Socket.On<JsonElement>("process-versions-Completed", (result) =>
{
BridgeConnector.Socket.Off("process-versions-Completed");
taskCompletionSource.SetResult(JsonSerializer.Deserialize<ProcessVersions>(result, Serialization.ElectronJson.Options));
taskCompletionSource.SetResult(result.Deserialize<ProcessVersions>(ElectronJson.Options));
});
BridgeConnector.Socket.Emit("process-versions");

View File

@@ -17,7 +17,7 @@ namespace ElectronNET.API
/// </summary>
public event Action<Display> OnDisplayAdded
{
add => ApiEventManager.AddEvent("screen-display-added", GetHashCode(), _onDisplayAdded, value, (args) => JsonSerializer.Deserialize(args, Serialization.ElectronJsonContext.Default.Display));
add => ApiEventManager.AddEvent("screen-display-added", GetHashCode(), _onDisplayAdded, value, (args) => args.Deserialize(ElectronJsonContext.Default.Display));
remove => ApiEventManager.RemoveEvent("screen-display-added", GetHashCode(), _onDisplayAdded, value);
}
@@ -28,7 +28,7 @@ namespace ElectronNET.API
/// </summary>
public event Action<Display> OnDisplayRemoved
{
add => ApiEventManager.AddEvent("screen-display-removed", GetHashCode(), _onDisplayRemoved, value, (args) => JsonSerializer.Deserialize(args, Serialization.ElectronJsonContext.Default.Display));
add => ApiEventManager.AddEvent("screen-display-removed", GetHashCode(), _onDisplayRemoved, value, (args) => args.Deserialize(ElectronJsonContext.Default.Display));
remove => ApiEventManager.RemoveEvent("screen-display-removed", GetHashCode(), _onDisplayRemoved, value);
}
@@ -85,7 +85,7 @@ namespace ElectronNET.API
{
BridgeConnector.Socket.Off("screen-getCursorScreenPointCompleted");
taskCompletionSource.SetResult(JsonSerializer.Deserialize<Point>(point, Serialization.ElectronJson.Options));
taskCompletionSource.SetResult(point.Deserialize<Point>(ElectronJson.Options));
});
BridgeConnector.Socket.Emit("screen-getCursorScreenPoint");
@@ -165,7 +165,7 @@ namespace ElectronNET.API
{
BridgeConnector.Socket.Off("screen-getDisplayNearestPointCompleted");
taskCompletionSource.SetResult(JsonSerializer.Deserialize(display, Serialization.ElectronJsonContext.Default.Display));
taskCompletionSource.SetResult(display.Deserialize(ElectronJsonContext.Default.Display));
});
BridgeConnector.Socket.Emit("screen-getDisplayNearestPoint", point);
@@ -186,7 +186,7 @@ namespace ElectronNET.API
{
BridgeConnector.Socket.Off("screen-getDisplayMatching");
taskCompletionSource.SetResult(JsonSerializer.Deserialize(display, Serialization.ElectronJsonContext.Default.Display));
taskCompletionSource.SetResult(display.Deserialize(ElectronJsonContext.Default.Display));
});
BridgeConnector.Socket.Emit("screen-getDisplayMatching", rectangle);

View File

@@ -1,4 +1,5 @@
using ElectronNET.API.Entities;
using ElectronNET.API.Serialization;
using System;
using System.Text.Json;
using System.Threading.Tasks;
@@ -213,7 +214,7 @@ namespace ElectronNET.API
BridgeConnector.Socket.On<JsonElement>("webContents-session-getBlobData-completed" + guid, (buffer) =>
{
var result = JsonSerializer.Deserialize<int[]>(buffer, Serialization.ElectronJson.Options);
var result = buffer.Deserialize<int[]>(ElectronJson.Options);
BridgeConnector.Socket.Off("webContents-session-getBlobData-completed" + guid);
taskCompletionSource.SetResult(result);
@@ -255,7 +256,7 @@ namespace ElectronNET.API
BridgeConnector.Socket.On<JsonElement>("webContents-session-getPreloads-completed" + guid, (preloads) =>
{
var result = JsonSerializer.Deserialize<string[]>(preloads, Serialization.ElectronJson.Options);
var result = preloads.Deserialize<string[]>(ElectronJson.Options);
BridgeConnector.Socket.Off("webContents-session-getPreloads-completed" + guid);
taskCompletionSource.SetResult(result);
});
@@ -388,7 +389,7 @@ namespace ElectronNET.API
BridgeConnector.Socket.On<JsonElement>("webContents-session-getAllExtensions-completed", (extensionslist) =>
{
BridgeConnector.Socket.Off("webContents-session-getAllExtensions-completed");
var chromeExtensionInfos = JsonSerializer.Deserialize<ChromeExtensionInfo[]>(extensionslist, Serialization.ElectronJson.Options);
var chromeExtensionInfos = extensionslist.Deserialize<ChromeExtensionInfo[]>(ElectronJson.Options);
taskCompletionSource.SetResult(chromeExtensionInfos);
});
@@ -443,7 +444,7 @@ namespace ElectronNET.API
{
BridgeConnector.Socket.Off("webContents-session-loadExtension-completed");
taskCompletionSource.SetResult(JsonSerializer.Deserialize<Extension>(extension, Serialization.ElectronJson.Options));
taskCompletionSource.SetResult(extension.Deserialize<Extension>(ElectronJson.Options));
});
BridgeConnector.Socket.Emit("webContents-session-loadExtension", Id, path, allowFileAccess);

View File

@@ -1,5 +1,6 @@
using ElectronNET.API.Entities;
using ElectronNET.API.Extensions;
using ElectronNET.API.Serialization;
using System.Text.Json;
using System.Threading.Tasks;
@@ -179,7 +180,7 @@ namespace ElectronNET.API
{
BridgeConnector.Socket.Off("shell-readShortcutLinkCompleted");
var details = JsonSerializer.Deserialize<ShortcutDetails>(shortcutDetails, Serialization.ElectronJson.Options);
var details = shortcutDetails.Deserialize<ShortcutDetails>(ElectronJson.Options);
taskCompletionSource.SetResult(details);
});

View File

@@ -101,7 +101,7 @@ public class WebContents
/// </summary>
public event Action<OnDidFailLoadInfo> OnDidFailLoad
{
add => ApiEventManager.AddEvent("webContents-didFailLoad", Id, _didFailLoad, value, (args) => JsonSerializer.Deserialize<OnDidFailLoadInfo>(args, ElectronJson.Options));
add => ApiEventManager.AddEvent("webContents-didFailLoad", Id, _didFailLoad, value, (args) => args.Deserialize<OnDidFailLoadInfo>(ElectronJson.Options));
remove => ApiEventManager.RemoveEvent("webContents-didFailLoad", Id, _didFailLoad, value);
}
@@ -112,7 +112,7 @@ public class WebContents
/// </summary>
public event Action<InputEvent> InputEvent
{
add => ApiEventManager.AddEvent("webContents-input-event", Id, _inputEvent, value, (args) => JsonSerializer.Deserialize<InputEvent>(args, ElectronJson.Options));
add => ApiEventManager.AddEvent("webContents-input-event", Id, _inputEvent, value, (args) => args.Deserialize<InputEvent>(ElectronJson.Options));
remove => ApiEventManager.RemoveEvent("webContents-input-event", Id, _inputEvent, value);
}
@@ -164,7 +164,7 @@ public class WebContents
{
BridgeConnector.Socket.Off("webContents-getPrinters-completed");
taskCompletionSource.SetResult(JsonSerializer.Deserialize<PrinterInfo[]>(printers, ElectronJson.Options));
taskCompletionSource.SetResult(printers.Deserialize<PrinterInfo[]>(ElectronJson.Options));
});
BridgeConnector.Socket.Emit("webContents-getPrinters", Id);

View File

@@ -1,4 +1,6 @@
using ElectronNET.API.Serialization;
using System;
using System.Text.Json;
namespace ElectronNET.API.Entities
{
@@ -35,8 +37,8 @@ namespace ElectronNET.API.Entities
BridgeConnector.Socket.On<System.Text.Json.JsonElement>($"webContents-session-webRequest-onBeforeRequest{Id}",
(args) =>
{
//// var details0 = args[0].Deserialize<OnBeforeRequestDetails>(ElectronNET.API.Serialization.ElectronJson.Options);
var details = System.Text.Json.JsonSerializer.Deserialize<OnBeforeRequestDetails>(args, Serialization.ElectronJson.Options);
//// var details0 = args[0].Deserialize<OnBeforeRequestDetails>(ElectronNET.ElectronJson.Options);
var details = args.Deserialize<OnBeforeRequestDetails>(ElectronJson.Options);
var callback = (Action<object>)((response) => { BridgeConnector.Socket.Emit($"webContents-session-webRequest-onBeforeRequest-response{Id}", response); });
_onBeforeRequest?.Invoke(details, callback);

View File

@@ -1,4 +1,5 @@
using ElectronNET.API.Entities;
using ElectronNET.API.Serialization;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -113,7 +114,7 @@ namespace ElectronNET.API
{
BridgeConnector.Socket.Off("BrowserWindowClosed");
var browserWindowIds = ids.Deserialize<int[]>(Serialization.ElectronJson.Options);
var browserWindowIds = ids.Deserialize<int[]>(ElectronJson.Options);
for (int index = 0; index < _browserWindows.Count; index++)
{

View File

@@ -1,4 +1,5 @@
using ElectronNET.API.Entities;
using ElectronNET.API.Serialization;
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
@@ -11,12 +12,11 @@ public class PageSizeConverter : JsonConverter<PageSize>
{
if (reader.TokenType == JsonTokenType.String)
{
return (string)reader.GetString();
return reader.GetString();
}
else if (reader.TokenType == JsonTokenType.StartObject)
{
using var doc = JsonDocument.ParseValue(ref reader);
return doc.RootElement.Deserialize<PageSize>(API.Serialization.ElectronJson.Options);
return JsonSerializer.Deserialize<PageSize>(ref reader, ElectronJson.Options);
}
else
{
@@ -39,7 +39,7 @@ public class PageSizeConverter : JsonConverter<PageSize>
}
else
{
JsonSerializer.Serialize(writer, value, API.Serialization.ElectronJson.Options);
JsonSerializer.Serialize(writer, value, ElectronJson.Options);
}
}
}

View File

@@ -1,4 +1,5 @@
using ElectronNET.API.Entities;
using ElectronNET.API.Serialization;
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
@@ -16,7 +17,7 @@ public class TitleBarOverlayConverter : JsonConverter<TitleBarOverlay>
else if (reader.TokenType == JsonTokenType.StartObject)
{
using var doc = JsonDocument.ParseValue(ref reader);
return doc.RootElement.Deserialize<TitleBarOverlay>(API.Serialization.ElectronJson.Options);
return doc.RootElement.Deserialize<TitleBarOverlay>(ElectronJson.Options);
}
else
{
@@ -38,7 +39,7 @@ public class TitleBarOverlayConverter : JsonConverter<TitleBarOverlay>
}
else
{
JsonSerializer.Serialize(writer, value, API.Serialization.ElectronJson.Options);
JsonSerializer.Serialize(writer, value, ElectronJson.Options);
}
}
}

View File

@@ -11,12 +11,11 @@ namespace ElectronNET.API.Serialization
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
WriteIndented = false,
Converters =
{
new JsonStringEnumConverter(JsonNamingPolicy.CamelCase)
}
};
static ElectronJson()
{
Options.Converters.Add(new JsonStringEnumConverter(JsonNamingPolicy.CamelCase));
}
}
// Use source generation where feasible for hot paths