You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Enhance ModelReaderWriter with collection support (Azure#48102)
* Enhance ModelReaderWriter with collection support
Updated ModelReaderWriter.cs to improve reading and writing functionality for various collection types, including List<> and Dictionary<>. Added error handling for unsupported types and enhanced exception messages.
Updated ModelReaderWriterTests.cs with new test cases to validate the changes, covering edge cases and empty collections. Added JSON test data for comprehensive testing of availability set data.
Included a new package reference for System.Memory.Data in project files. Minor corrections made to comments and variable names for clarity.
* expand test coverage
* update api
* update dotnet in ci
* add aot annotations
* more aot annotation
* Update to keep current behavior but add new read methods which are AOT compatible for IEnumerable and IPersistableModel
* fix aot on collection reader
* update to remove collection read type restriction
* update context pattern
* drop internal interface
* add ROM support
* add immutablelist test example
* add more test cases
* code clean up
* add coverage for context and non context into modeltests
* refactor collection tests to use common base
* update api
* move list of list tests to inherit test base
* update remaining tests
* more test coverage
* add remaining immutable and readonly tests
* add perf tests to verify no regression and context path is faster
* fix net framework test diff
* add polymorphic collection tests
* comment out problematic tests
* pr fb
* pr feedback to remove CollectionBuilder as a public class
* more api feedback
* fix param name
* drop property funcs
* drop assert key
* drop asserts and createelementinstance
* add support and test cases for null entries in the collections
add tests for custom collection
* add support and tests for non generic collection and non string keys
* Fill out coverage after refactors
* update method names to match new renames
* added test cases for mixed model and enumerable
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This utilizes reflection-based JSON serialization and deserialization which is not compatible with trimming.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This utilizes reflection-based JSON serialization and deserialization which is not compatible with trimming.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This utilizes reflection-based JSON serialization and deserialization which is not compatible with trimming.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("JsonObjectSerializer uses reflection-based JSON serialization and deserialization that is not compatible with trimming.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("JsonObjectSerializer uses reflection-based JSON serialization and deserialization that is not compatible with trimming.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This method uses reflection-based serialization which is incompatible with trimming. Try using one of the 'Create' overloads that doesn't wrap a serialized version of an object.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This method uses reflection-based serialization which is incompatible with trimming. Try using one of the 'Create' overloads that doesn't wrap a serialized version of an object.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This method uses reflection-based serialization which is incompatible with trimming. Try using one of the 'Create' overloads that doesn't wrap a serialized version of an object.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("Binding strongly typed objects to configuration values is not supported with trimming. Use the Configuration Binder Source Generator (EnableConfigurationBindingGenerator=true) instead.")]
@@ -1127,7 +1118,6 @@ public ServerCertificateCustomValidationArgs(System.Security.Cryptography.X509Ce
1127
1118
}
1128
1119
namespaceAzure.Core.Serialization
1129
1120
{
1130
-
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This class utilizes reflection-based JSON serialization and deserialization which is not compatible with trimming.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This class uses reflection-based JSON serialization and deserialization that is not compatible with trimming.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This utilizes reflection-based JSON serialization and deserialization which is not compatible with trimming.")]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute("This utilizes reflection-based JSON serialization and deserialization which is not compatible with trimming.")]
21
-
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This utilizes reflection-based JSON serialization and deserialization which is not compatible with trimming.")]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute("This utilizes reflection-based JSON serialization and deserialization which is not compatible with trimming.")]
24
-
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This utilizes reflection-based JSON serialization and deserialization which is not compatible with trimming.")]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute("This utilizes reflection-based JSON serialization and deserialization which is not compatible with trimming.")]
28
-
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This utilizes reflection-based JSON serialization and deserialization which is not compatible with trimming.")]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute("JsonObjectSerializer uses reflection-based JSON serialization and deserialization that is not compatible with trimming.")]
102
-
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("JsonObjectSerializer uses reflection-based JSON serialization and deserialization that is not compatible with trimming.")]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute("JsonObjectSerializer uses reflection-based JSON serialization and deserialization that is not compatible with trimming.")]
106
-
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("JsonObjectSerializer uses reflection-based JSON serialization and deserialization that is not compatible with trimming.")]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute("This method uses reflection-based serialization which is incompatible with trimming. Try using one of the 'Create' overloads that doesn't wrap a serialized version of an object.")]
593
-
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This method uses reflection-based serialization which is incompatible with trimming. Try using one of the 'Create' overloads that doesn't wrap a serialized version of an object.")]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute("This method uses reflection-based serialization which is incompatible with trimming. Try using one of the 'Create' overloads that doesn't wrap a serialized version of an object.")]
596
-
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This method uses reflection-based serialization which is incompatible with trimming. Try using one of the 'Create' overloads that doesn't wrap a serialized version of an object.")]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute("This method uses reflection-based serialization which is incompatible with trimming. Try using one of the 'Create' overloads that doesn't wrap a serialized version of an object.")]
599
-
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This method uses reflection-based serialization which is incompatible with trimming. Try using one of the 'Create' overloads that doesn't wrap a serialized version of an object.")]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute("Binding strongly typed objects to configuration values requires generating dynamic code at runtime, for example instantiating generic types. Use the Configuration Binder Source Generator (EnableConfigurationBindingGenerator=true) instead.")]
858
-
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("Binding strongly typed objects to configuration values is not supported with trimming. Use the Configuration Binder Source Generator (EnableConfigurationBindingGenerator=true) instead.")]
@@ -1139,7 +1130,6 @@ public ServerCertificateCustomValidationArgs(System.Security.Cryptography.X509Ce
1139
1130
namespaceAzure.Core.Serialization
1140
1131
{
1141
1132
[System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute("This class utilizes reflection-based JSON serialization and deserialization which is not compatible with trimming.")]
1142
-
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This class utilizes reflection-based JSON serialization and deserialization which is not compatible with trimming.")]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute("This class uses reflection-based JSON serialization and deserialization that is not compatible with trimming.")]
1178
-
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This class uses reflection-based JSON serialization and deserialization that is not compatible with trimming.")]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute("This utilizes reflection-based JSON serialization and deserialization which is not compatible with trimming.")]
1211
-
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("This utilizes reflection-based JSON serialization and deserialization which is not compatible with trimming.")]
0 commit comments