/
githubmirror
/
PowerToys
Обзор
Документация
Войти
/
githubmirror
/
PowerToys
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/settings-ui/Settings.UI.Library/CustomAction/SendCustomAction.cs
43 строки
2 KB
gokcekantarci
.NET 8 Upgrade Silenced Errors Fix (#30469)
28 дек 2023, 13:37
Не верифицирован
28 дек 2023, 13:37
a94b3ee
Код
Авторство
О чём код?
// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.Collections.Concurrent; using System.Text.Json; using System.Text.Json.Serialization; namespace Microsoft.PowerToys.Settings.UI.Library.CustomAction { public class SendCustomAction { private static readonly ConcurrentDictionary<string, JsonSerializerOptions> OptionsCache = new ConcurrentDictionary<string, JsonSerializerOptions>(); private readonly string moduleName; public SendCustomAction(string moduleName) { this.moduleName = moduleName; } [JsonPropertyName("action")] public ModuleCustomAction Action { get; set; } public string ToJsonString() { var jsonSerializerOptions = OptionsCache.GetOrAdd(moduleName, CreateOptionsForModuleName); return JsonSerializer.Serialize(this, jsonSerializerOptions); } private JsonSerializerOptions CreateOptionsForModuleName(string moduleName) { return new JsonSerializerOptions { PropertyNamingPolicy = new CustomNamePolicy((propertyName) => { // Using Ordinal as this is an internal property name return propertyName.Equals("ModuleAction", System.StringComparison.Ordinal) ? moduleName : propertyName; }), }; } } }