* Good start

* Misc

* Make ApiAuthenticationMiddleware use new json

* Remove first newtonsoft dependency

* Pull latest ASFB json enhancements

* Start reimplementing newtonsoft!

* One thing at a time

* Keep doing all kind of breaking changes which need to be tested later

* Add back ShouldSerialize() support

* Misc

* Eradicate remaining parts of newtonsoft

* WIP

* Workaround STJ stupidity in regards to derived types

STJ can't serialize derived type properties by default, so we'll use another approach in our serializable file function

* Make CI happy

* Bunch of further fixes

* Fix AddFreeLicense() after rewrite

* Add full support for JsonDisallowNullAttribute

* Optimize our json utilities even further

* Misc

* Add support for fields in disallow null

* Misc optimization

* Fix deserialization of GlobalCache in STD

* Fix non-public [JsonExtensionData]

* Fix IM missing method exception, correct db storage helpers

* Fix saving into generic databases

Thanks STJ

* Make Save() function abstract to force inheritors to implement it properly

* Correct ShouldSerializeAdditionalProperties to be a method

* Misc cleanup

* Code review

* Allow JSON comments in configs, among other

* Allow trailing commas in configs

Users very often add them accidentally, no reason to throw on them

* Fix confirmation ID

Probably needs further fixes, will need to check later

* Correct confirmations deserialization

* Use JsonNumberHandling

* Misc

* Misc

* [JsonDisallowNull] corrections

* Forbid [JsonDisallowNull] on non-nullable structs

* Not really but okay

* Add and use ToJson() helpers

* Misc

* Misc
This commit is contained in:
Łukasz Domeradzki
2024-02-21 03:09:36 +01:00
committed by GitHub
parent 3968130e15
commit 6b0bf0f9c1
114 changed files with 1714 additions and 1212 deletions

View File

@@ -20,33 +20,33 @@
// limitations under the License.
using System.Diagnostics.CodeAnalysis;
using System.Text.Json.Serialization;
using ArchiSteamFarm.Steam.Data;
using Newtonsoft.Json;
namespace ArchiSteamFarm.OfficialPlugins.ItemsMatcher.Data;
#pragma warning disable CA1812 // False positive, the class is used during json deserialization
[SuppressMessage("ReSharper", "ClassCannotBeInstantiated")]
internal sealed class SetPart {
#pragma warning disable CS0649 // False positive, the field is used during json deserialization
[JsonProperty("c", Required = Required.Always)]
internal readonly ulong ClassID;
#pragma warning restore CS0649 // False positive, the field is used during json deserialization
[JsonInclude]
[JsonPropertyName("c")]
[JsonRequired]
internal ulong ClassID { get; private init; }
#pragma warning disable CS0649 // False positive, the field is used during json deserialization
[JsonProperty("r", Required = Required.Always)]
internal readonly Asset.ERarity Rarity;
#pragma warning restore CS0649 // False positive, the field is used during json deserialization
[JsonInclude]
[JsonPropertyName("r")]
[JsonRequired]
internal Asset.ERarity Rarity { get; private init; }
#pragma warning disable CS0649 // False positive, the field is used during json deserialization
[JsonProperty("e", Required = Required.Always)]
internal readonly uint RealAppID;
#pragma warning restore CS0649 // False positive, the field is used during json deserialization
[JsonInclude]
[JsonPropertyName("e")]
[JsonRequired]
internal uint RealAppID { get; private init; }
#pragma warning disable CS0649 // False positive, the field is used during json deserialization
[JsonProperty("p", Required = Required.Always)]
internal readonly Asset.EType Type;
#pragma warning restore CS0649 // False positive, the field is used during json deserialization
[JsonInclude]
[JsonPropertyName("p")]
[JsonRequired]
internal Asset.EType Type { get; private init; }
[JsonConstructor]
private SetPart() { }