Просмотр исходного кода

added some more AOT aware attributes, they may not be useful, but don't do harm either.

vpenades 1 год назад
Родитель
Сommit
7b4633e5e8

+ 11 - 0
src/SharpGLTF.Core/IO/UnknownNode.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
 using System.Text;
 
 using System.Text.Json;
@@ -30,6 +31,11 @@ namespace SharpGLTF.IO
 
         private readonly string _Name;
 
+        #if NET6_0_OR_GREATER
+        [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(System.Text.Json.Nodes.JsonArray))]
+        [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(System.Text.Json.Nodes.JsonValue))]
+        [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(System.Text.Json.Nodes.JsonObject))]
+        #endif
         private readonly Dictionary<String, JSONCONTENT> _Properties = new Dictionary<String, JSONCONTENT>();
 
         #endregion
@@ -44,6 +50,11 @@ namespace SharpGLTF.IO
 
         #region API
 
+        #if NET6_0_OR_GREATER
+        [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(System.Text.Json.Nodes.JsonArray))]
+        [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(System.Text.Json.Nodes.JsonValue))]
+        [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(System.Text.Json.Nodes.JsonObject))]
+        #endif
         protected override void DeserializeProperty(string property, ref Utf8JsonReader reader)
         {
             reader.Read();

+ 7 - 0
src/SharpGLTF.Core/Schema2/ext.XmpJsonLinkedData.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
 using System.Text;
 
 using SharpGLTF.Collections;
@@ -15,8 +16,14 @@ namespace SharpGLTF.Schema2
             _packets = new List<XMPJSONLD>();
         }
 
+        
         public IReadOnlyList<XMPJSONLD> JsonPackets => _packets;
 
+        #if NET6_0_OR_GREATER
+        [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(System.Text.Json.Nodes.JsonArray))]
+        [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(System.Text.Json.Nodes.JsonValue))]
+        [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(System.Text.Json.Nodes.JsonObject))]
+        #endif
         public int AddPacket(XMPJSONLD packet)
         {
             if (_packets.Contains(packet)) throw new ArgumentException("Already exists", nameof(packet));

+ 15 - 2
src/SharpGLTF.Core/Schema2/gltf.ExtraProperties.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
 using System.Linq;
 
 using System.Text.Json;
@@ -10,12 +11,13 @@ using JsonToken = System.Text.Json.JsonTokenType;
 
 using JSONEXTRAS = System.Text.Json.Nodes.JsonNode;
 
+
 namespace SharpGLTF.Schema2
 {
     public interface IExtraProperties
     {
         IReadOnlyCollection<JsonSerializable> Extensions { get; }
-
+        
         JSONEXTRAS Extras { get; set; }
     }
 
@@ -45,10 +47,21 @@ namespace SharpGLTF.Schema2
 
         /// <summary>
         /// Gets or sets the extras content of this instance.
-        /// </summary>
+        /// </summary>        
         public JSONEXTRAS Extras
         {
+            #if NET6_0_OR_GREATER
+            [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(System.Text.Json.Nodes.JsonArray))]
+            [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(System.Text.Json.Nodes.JsonValue))]
+            [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(System.Text.Json.Nodes.JsonObject))]
+            #endif
             get => _extras;
+
+            #if NET6_0_OR_GREATER
+            [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(System.Text.Json.Nodes.JsonArray))]
+            [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(System.Text.Json.Nodes.JsonValue))]
+            [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(System.Text.Json.Nodes.JsonObject))]
+            #endif
             set => _extras = value?.DeepClone();
         }