V14: Migrate nucache to use System.Text.Json (#15685)
* Create system text serializer * Assign property names with system text * Use the new serializer * Impement AutoInterningStringConverter with System.Text.Json * Implement TextAutoInterningStringKeyCaseInsensitiveDictionaryConverter * Make CaseInsensitiveDictionaryConverter * Force datetimes to be read as UTC * Remove usages of Newtonsoft.Json * Remove text prefixes * Remove unused Newtonsoft converter * Remove more newtonsoft * Remove duplicate implementation * Rmove usage of missing class in tests * Ignore null values * Fix tests * Remove Newtonstoft reference from NuCache --------- Co-authored-by: Elitsa <elm@umbraco.dk>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System.Runtime.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using Umbraco.Cms.Infrastructure.Serialization;
|
||||
|
||||
namespace Umbraco.Cms.Infrastructure.PublishedCache.DataSource;
|
||||
|
||||
@@ -10,35 +11,37 @@ namespace Umbraco.Cms.Infrastructure.PublishedCache.DataSource;
|
||||
public class CultureVariation
|
||||
{
|
||||
[DataMember(Order = 0)]
|
||||
[JsonProperty("nm")]
|
||||
[JsonPropertyName("nm")]
|
||||
public string? Name { get; set; }
|
||||
|
||||
[DataMember(Order = 1)]
|
||||
[JsonProperty("us")]
|
||||
[JsonPropertyName("us")]
|
||||
public string? UrlSegment { get; set; }
|
||||
|
||||
[DataMember(Order = 2)]
|
||||
[JsonProperty("dt")]
|
||||
[JsonPropertyName("dt")]
|
||||
[JsonConverter(typeof(ForceUtcDateTimeConverter))]
|
||||
public DateTime Date { get; set; }
|
||||
|
||||
[DataMember(Order = 3)]
|
||||
[JsonProperty("isd")]
|
||||
[JsonPropertyName("isd")]
|
||||
public bool IsDraft { get; set; }
|
||||
|
||||
// Legacy properties used to deserialize existing nucache db entries
|
||||
[IgnoreDataMember]
|
||||
[JsonProperty("name")]
|
||||
[JsonPropertyName("nam")]
|
||||
private string LegacyName { set => Name = value; }
|
||||
|
||||
[IgnoreDataMember]
|
||||
[JsonProperty("urlSegment")]
|
||||
[JsonPropertyName("urlSegment")]
|
||||
private string LegacyUrlSegment { set => UrlSegment = value; }
|
||||
|
||||
[IgnoreDataMember]
|
||||
[JsonProperty("date")]
|
||||
[JsonPropertyName("date")]
|
||||
[JsonConverter(typeof(ForceUtcDateTimeConverter))]
|
||||
private DateTime LegacyDate { set => Date = value; }
|
||||
|
||||
[IgnoreDataMember]
|
||||
[JsonProperty("isDraft")]
|
||||
[JsonPropertyName("isDraft")]
|
||||
private bool LegacyIsDraft { set => IsDraft = value; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user