1
0
Fork 0
mirror of https://github.com/Ellpeck/MLEM.git synced 2024-11-22 12:58:33 +01:00

Allow adding JsonTypeSafeWrapper instances to JsonTypeSafeGenericDataHolder directly

This commit is contained in:
Ell 2022-11-22 21:51:42 +01:00
parent e812dd7802
commit 92353e40e6
2 changed files with 3 additions and 1 deletions

View file

@ -81,6 +81,7 @@ Improvements
- Added trimming and AOT annotations and made MLEM.Data trimmable - Added trimming and AOT annotations and made MLEM.Data trimmable
- Store a RuntimeTexturePacker packed texture region's source region - Store a RuntimeTexturePacker packed texture region's source region
- Use JSON.NET attributes in favor of DataContract and DataMember - Use JSON.NET attributes in favor of DataContract and DataMember
- Allow adding JsonTypeSafeWrapper instances to JsonTypeSafeGenericDataHolder directly
Fixes Fixes
- Fixed data texture atlases not allowing most characters in their region names - Fixed data texture atlases not allowing most characters in their region names

View file

@ -6,6 +6,7 @@ namespace MLEM.Data.Json {
/// <summary> /// <summary>
/// An <see cref="IGenericDataHolder"/> represents an object that can hold generic key-value based data. /// An <see cref="IGenericDataHolder"/> represents an object that can hold generic key-value based data.
/// This class uses <see cref="JsonTypeSafeWrapper"/> for each object stored to ensure that objects with a custom <see cref="JsonConverter"/> get deserialized as an instance of their original type if <see cref="JsonSerializer.TypeNameHandling"/> is not set to <see cref="TypeNameHandling.None"/>. /// This class uses <see cref="JsonTypeSafeWrapper"/> for each object stored to ensure that objects with a custom <see cref="JsonConverter"/> get deserialized as an instance of their original type if <see cref="JsonSerializer.TypeNameHandling"/> is not set to <see cref="TypeNameHandling.None"/>.
/// Note that, using <see cref="SetData"/>, adding <see cref="JsonTypeSafeWrapper{T}"/> instances directly is also possible.
/// </summary> /// </summary>
#if NET7_0_OR_GREATER #if NET7_0_OR_GREATER
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("The native code for instantiation of JsonTypeSafeWrapper instances might not be available at runtime.")] [System.Diagnostics.CodeAnalysis.RequiresDynamicCode("The native code for instantiation of JsonTypeSafeWrapper instances might not be available at runtime.")]
@ -25,7 +26,7 @@ namespace MLEM.Data.Json {
} else { } else {
if (this.data == null) if (this.data == null)
this.data = new Dictionary<string, JsonTypeSafeWrapper>(); this.data = new Dictionary<string, JsonTypeSafeWrapper>();
this.data[key] = JsonTypeSafeWrapper.Of(data); this.data[key] = data as JsonTypeSafeWrapper ?? JsonTypeSafeWrapper.Of(data);
} }
} }