usingSystem.Diagnostics.CodeAnalysis;
usingSystem.Text.Json.Serialization.Metadata;
namespaceSystem.Text.Json.Serialization.Converters
{
internalsealedclassLargeObjectWithParameterizedConstructorConverterWithReflection<T> : LargeObjectWithParameterizedConstructorConverter<T>
{
internaloverrideboolRequiresDynamicMemberAccessors => true;
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext, or make sure all of the required types are preserved.")]
publicLargeObjectWithParameterizedConstructorConverterWithReflection()
{
}
[System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026:RequiresUnreferencedCode", Justification = "The ctor is marked RequiresUnreferencedCode.")]
internaloverridevoidInitialize(JsonSerializerOptionsoptions, JsonTypeInfojsonTypeInfo = null)
{
jsonTypeInfo.CreateObjectWithArgs = options.MemberAccessorStrategy.CreateParameterizedConstructor<T>(base.ConstructorInfo);
}
}
}