| File: System\Text\Json\Serialization\Metadata\JsonObjectInfoValuesOfT.cs | Web Access |
| Project: src\runtime\src\libraries\System.Text.Json\src\System.Text.Json.csproj (System.Text.Json) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.ComponentModel; using System.Reflection; namespace System.Text.Json.Serialization.Metadata { /// <summary> /// Provides serialization metadata about an object type with constructors, properties, and fields. /// </summary> /// <typeparam name="T">The object type to serialize or deserialize.</typeparam> /// <remarks>This API is for use by the output of the System.Text.Json source generator and should not be called directly.</remarks> [EditorBrowsable(EditorBrowsableState.Never)] public sealed class JsonObjectInfoValues<T> { /// <summary> /// Provides a mechanism to create an instance of the class or struct when deserializing, using a parameterless constructor. /// </summary> /// <remarks>This API is for use by the output of the System.Text.Json source generator and should not be called directly.</remarks> public Func<T>? ObjectCreator { get; init; } /// <summary> /// Provides a mechanism to create an instance of the class or struct when deserializing, using a parameterized constructor. /// </summary> /// <remarks>This API is for use by the output of the System.Text.Json source generator and should not be called directly.</remarks> public Func<object[], T>? ObjectWithParameterizedConstructorCreator { get; init; } /// <summary> /// Provides a mechanism to initialize metadata for properties and fields of the class or struct. /// </summary> /// <remarks>This API is for use by the output of the System.Text.Json source generator and should not be called directly.</remarks> public Func<JsonSerializerContext, JsonPropertyInfo[]>? PropertyMetadataInitializer { get; init; } /// <summary> /// Provides a mechanism to initialize metadata for a parameterized constructor of the class or struct to be used when deserializing. /// </summary> /// <remarks>This API is for use by the output of the System.Text.Json source generator and should not be called directly.</remarks> public Func<JsonParameterInfoValues[]>? ConstructorParameterMetadataInitializer { get; init; } /// <summary> /// Provides a delayed attribute provider corresponding to the deserialization constructor. /// </summary> public Func<ICustomAttributeProvider>? ConstructorAttributeProviderFactory { get; init; } /// <summary> /// Specifies how number properties and fields should be processed when serializing and deserializing. /// </summary> /// <remarks>This API is for use by the output of the System.Text.Json source generator and should not be called directly.</remarks> public JsonNumberHandling NumberHandling { get; init; } /// <summary> /// Specifies polymorphism metadata to apply to the class or struct. /// </summary> /// <remarks>This API is for use by the output of the System.Text.Json source generator and should not be called directly.</remarks> public JsonPolymorphismOptions? PolymorphismOptions { get; init; } /// <summary> /// Provides a serialization implementation for instances of the class or struct which assumes options specified by <see cref="JsonSourceGenerationOptionsAttribute"/>. /// </summary> /// <remarks>This API is for use by the output of the System.Text.Json source generator and should not be called directly.</remarks> public Action<Utf8JsonWriter, T>? SerializeHandler { get; init; } /// <summary> /// Gets or sets a factory used to lazily construct a <see cref="JsonTypeClassifier"/> /// from the polymorphic type's metadata at <see cref="JsonTypeInfo"/> configuration time. /// </summary> /// <remarks>This API is for use by the output of the System.Text.Json source generator and should not be called directly.</remarks> public JsonTypeClassifierFactory? TypeClassifierFactory { get; init; } } }