File: _generated\30\TemplateCacheJsonSerializerContext.TemplateInfo.g.cs
Web Access
Project: src\src\sdk\src\TemplateEngine\Microsoft.TemplateEngine.Edge\Microsoft.TemplateEngine.Edge.csproj (Microsoft.TemplateEngine.Edge)
// <auto-generated/>

#nullable enable annotations
#nullable disable warnings

// Suppress warnings about [Obsolete] member usage in generated code.
#pragma warning disable CS0612, CS0618

namespace Microsoft.TemplateEngine.Edge.Settings
{
    internal partial class TemplateCacheJsonSerializerContext
    {
        private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo>? _TemplateInfo;
        
        /// <summary>
        /// Defines the source generated JSON serialization contract metadata for a given type.
        /// </summary>
        #nullable disable annotations // Marking the property type as nullable-oblivious.
        public global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo> TemplateInfo
        #nullable enable annotations
        {
            get => _TemplateInfo ??= (global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo>)Options.GetTypeInfo(typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo));
        }
        
        private global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo> Create_TemplateInfo(global::System.Text.Json.JsonSerializerOptions options)
        {
            if (!TryGetTypeInfoForRuntimeCustomConverter<global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo>(options, out global::System.Text.Json.Serialization.Metadata.JsonTypeInfo<global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo> jsonTypeInfo))
            {
                var objectInfo = new global::System.Text.Json.Serialization.Metadata.JsonObjectInfoValues<global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo>
                {
                    ObjectCreator = null,
                    ObjectWithParameterizedConstructorCreator = null,
                    PropertyMetadataInitializer = _ => TemplateInfoPropInit(options),
                    ConstructorParameterMetadataInitializer = null,
                    ConstructorAttributeProviderFactory = null,
                    SerializeHandler = TemplateInfoSerializeHandler,
                };
                
                jsonTypeInfo = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreateObjectInfo<global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo>(options, objectInfo);
                jsonTypeInfo.NumberHandling = null;
            }
        
            jsonTypeInfo.OriginatingResolver = this;
            return jsonTypeInfo;
        }

        private static global::System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] TemplateInfoPropInit(global::System.Text.Json.JsonSerializerOptions options)
        {
            var properties = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfo[23];

            var info0 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::Microsoft.TemplateEngine.Abstractions.Parameters.IParameterDefinitionSet>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).ParameterDefinitions,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "ParameterDefinitions",
                JsonPropertyName = "Parameters",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("ParameterDefinitions", InstanceMemberBindingFlags, null, typeof(global::Microsoft.TemplateEngine.Abstractions.Parameters.IParameterDefinitionSet), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[0] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::Microsoft.TemplateEngine.Abstractions.Parameters.IParameterDefinitionSet>(options, info0);
            properties[0].IsGetNullable = false;
            properties[0].IsSetNullable = false;

            var info1 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<object>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = null,
                Setter = null,
                IgnoreCondition = global::System.Text.Json.Serialization.JsonIgnoreCondition.Always,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "Parameters",
                JsonPropertyName = null,
                AttributeProviderFactory = static () => null,
            };
            
            properties[1] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<object>(options, info1);
            properties[1].IsGetNullable = false;

            var info2 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<string>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).MountPointUri,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "MountPointUri",
                JsonPropertyName = "MountPointUri",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("MountPointUri", InstanceMemberBindingFlags, null, typeof(string), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[2] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<string>(options, info2);
            properties[2].IsGetNullable = false;

            var info3 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<string>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).Author,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "Author",
                JsonPropertyName = "Author",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("Author", InstanceMemberBindingFlags, null, typeof(string), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[3] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<string>(options, info3);

            var info4 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::System.Collections.Generic.IReadOnlyList<string>>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).Classifications,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "Classifications",
                JsonPropertyName = "Classifications",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("Classifications", InstanceMemberBindingFlags, null, typeof(global::System.Collections.Generic.IReadOnlyList<string>), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[4] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::System.Collections.Generic.IReadOnlyList<string>>(options, info4);
            properties[4].IsGetNullable = false;
            properties[4].IsSetNullable = false;

            var info5 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<string>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).DefaultName,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "DefaultName",
                JsonPropertyName = "DefaultName",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("DefaultName", InstanceMemberBindingFlags, null, typeof(string), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[5] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<string>(options, info5);

            var info6 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<string>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).Description,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "Description",
                JsonPropertyName = "Description",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("Description", InstanceMemberBindingFlags, null, typeof(string), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[6] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<string>(options, info6);

            var info7 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<string>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).Identity,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "Identity",
                JsonPropertyName = "Identity",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("Identity", InstanceMemberBindingFlags, null, typeof(string), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[7] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<string>(options, info7);
            properties[7].IsGetNullable = false;

            var info8 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::System.Guid>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).GeneratorId,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "GeneratorId",
                JsonPropertyName = "GeneratorId",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("GeneratorId", InstanceMemberBindingFlags, null, typeof(global::System.Guid), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[8] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::System.Guid>(options, info8);

            var info9 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<string>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).GroupIdentity,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "GroupIdentity",
                JsonPropertyName = "GroupIdentity",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("GroupIdentity", InstanceMemberBindingFlags, null, typeof(string), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[9] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<string>(options, info9);

            var info10 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<int>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).Precedence,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "Precedence",
                JsonPropertyName = "Precedence",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("Precedence", InstanceMemberBindingFlags, null, typeof(int), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[10] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<int>(options, info10);

            var info11 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<string>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).Name,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "Name",
                JsonPropertyName = "Name",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("Name", InstanceMemberBindingFlags, null, typeof(string), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[11] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<string>(options, info11);
            properties[11].IsGetNullable = false;

            var info12 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::System.Collections.Generic.IReadOnlyList<string>>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).ShortNameList,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "ShortNameList",
                JsonPropertyName = null,
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("ShortNameList", InstanceMemberBindingFlags, null, typeof(global::System.Collections.Generic.IReadOnlyList<string>), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[12] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::System.Collections.Generic.IReadOnlyList<string>>(options, info12);
            properties[12].IsGetNullable = false;

            var info13 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<bool>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).PreferDefaultName,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "PreferDefaultName",
                JsonPropertyName = "PreferDefaultName",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("PreferDefaultName", InstanceMemberBindingFlags, null, typeof(bool), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[13] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<bool>(options, info13);

            var info14 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<string>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).ConfigPlace,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "ConfigPlace",
                JsonPropertyName = "ConfigPlace",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("ConfigPlace", InstanceMemberBindingFlags, null, typeof(string), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[14] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<string>(options, info14);
            properties[14].IsGetNullable = false;

            var info15 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<string>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).LocaleConfigPlace,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "LocaleConfigPlace",
                JsonPropertyName = "LocaleConfigPlace",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("LocaleConfigPlace", InstanceMemberBindingFlags, null, typeof(string), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[15] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<string>(options, info15);

            var info16 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<string>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).HostConfigPlace,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "HostConfigPlace",
                JsonPropertyName = "HostConfigPlace",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("HostConfigPlace", InstanceMemberBindingFlags, null, typeof(string), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[16] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<string>(options, info16);

            var info17 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<string>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).ThirdPartyNotices,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "ThirdPartyNotices",
                JsonPropertyName = "ThirdPartyNotices",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("ThirdPartyNotices", InstanceMemberBindingFlags, null, typeof(string), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[17] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<string>(options, info17);

            var info18 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::System.Collections.Generic.IReadOnlyDictionary<string, global::Microsoft.TemplateEngine.Abstractions.IBaselineInfo>>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).BaselineInfo,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "BaselineInfo",
                JsonPropertyName = "BaselineInfo",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("BaselineInfo", InstanceMemberBindingFlags, null, typeof(global::System.Collections.Generic.IReadOnlyDictionary<string, global::Microsoft.TemplateEngine.Abstractions.IBaselineInfo>), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[18] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::System.Collections.Generic.IReadOnlyDictionary<string, global::Microsoft.TemplateEngine.Abstractions.IBaselineInfo>>(options, info18);
            properties[18].IsGetNullable = false;
            properties[18].IsSetNullable = false;

            var info19 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::System.Collections.Generic.IReadOnlyDictionary<string, string>>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).TagsCollection,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "TagsCollection",
                JsonPropertyName = "TagsCollection",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("TagsCollection", InstanceMemberBindingFlags, null, typeof(global::System.Collections.Generic.IReadOnlyDictionary<string, string>), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[19] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::System.Collections.Generic.IReadOnlyDictionary<string, string>>(options, info19);
            properties[19].IsGetNullable = false;
            properties[19].IsSetNullable = false;

            var info20 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<string>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).HostData,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "HostData",
                JsonPropertyName = null,
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("HostData", InstanceMemberBindingFlags, null, typeof(string), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[20] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<string>(options, info20);

            var info21 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::System.Collections.Generic.IReadOnlyList<global::System.Guid>>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).PostActions,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "PostActions",
                JsonPropertyName = "PostActions",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("PostActions", InstanceMemberBindingFlags, null, typeof(global::System.Collections.Generic.IReadOnlyList<global::System.Guid>), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[21] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::System.Collections.Generic.IReadOnlyList<global::System.Guid>>(options, info21);
            properties[21].IsGetNullable = false;
            properties[21].IsSetNullable = false;

            var info22 = new global::System.Text.Json.Serialization.Metadata.JsonPropertyInfoValues<global::System.Collections.Generic.IReadOnlyList<global::Microsoft.TemplateEngine.Abstractions.Constraints.TemplateConstraintInfo>>
            {
                IsProperty = true,
                IsPublic = true,
                IsVirtual = false,
                DeclaringType = typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo),
                Converter = null,
                Getter = static obj => ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)obj).Constraints,
                Setter = null,
                IgnoreCondition = null,
                HasJsonInclude = false,
                IsExtensionData = false,
                NumberHandling = null,
                PropertyName = "Constraints",
                JsonPropertyName = "Constraints",
                AttributeProviderFactory = static () => typeof(global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo).GetProperty("Constraints", InstanceMemberBindingFlags, null, typeof(global::System.Collections.Generic.IReadOnlyList<global::Microsoft.TemplateEngine.Abstractions.Constraints.TemplateConstraintInfo>), global::System.Array.Empty<global::System.Type>(), null),
            };
            
            properties[22] = global::System.Text.Json.Serialization.Metadata.JsonMetadataServices.CreatePropertyInfo<global::System.Collections.Generic.IReadOnlyList<global::Microsoft.TemplateEngine.Abstractions.Constraints.TemplateConstraintInfo>>(options, info22);
            properties[22].IsGetNullable = false;
            properties[22].IsSetNullable = false;

            return properties;
        }

        // Intentionally not a static method because we create a delegate to it. Invoking delegates to instance
        // methods is almost as fast as virtual calls. Static methods need to go through a shuffle thunk.
        private void TemplateInfoSerializeHandler(global::System.Text.Json.Utf8JsonWriter writer, global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo? value)
        {
            if (value is null)
            {
                writer.WriteNullValue();
                return;
            }
            
            writer.WriteStartObject();

            global::Microsoft.TemplateEngine.Abstractions.Parameters.IParameterDefinitionSet __value_ParameterDefinitions = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).ParameterDefinitions;
            if (__value_ParameterDefinitions is not null)
            {
                writer.WritePropertyName(PropName_Parameters);
                IParameterDefinitionSetSerializeHandler(writer, __value_ParameterDefinitions);
            }
            string __value_MountPointUri = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).MountPointUri;
            if (__value_MountPointUri is not null)
            {
                writer.WriteString(PropName_MountPointUri, __value_MountPointUri);
            }
            string __value_Author = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).Author;
            if (__value_Author is not null)
            {
                writer.WriteString(PropName_Author, __value_Author);
            }
            global::System.Collections.Generic.IReadOnlyList<string> __value_Classifications = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).Classifications;
            if (__value_Classifications is not null)
            {
                writer.WritePropertyName(PropName_Classifications);
                IReadOnlyListStringSerializeHandler(writer, __value_Classifications);
            }
            string __value_DefaultName = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).DefaultName;
            if (__value_DefaultName is not null)
            {
                writer.WriteString(PropName_DefaultName, __value_DefaultName);
            }
            string __value_Description = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).Description;
            if (__value_Description is not null)
            {
                writer.WriteString(PropName_Description, __value_Description);
            }
            string __value_Identity = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).Identity;
            if (__value_Identity is not null)
            {
                writer.WriteString(PropName_Identity, __value_Identity);
            }
            writer.WriteString(PropName_GeneratorId, ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).GeneratorId);
            string __value_GroupIdentity = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).GroupIdentity;
            if (__value_GroupIdentity is not null)
            {
                writer.WriteString(PropName_GroupIdentity, __value_GroupIdentity);
            }
            writer.WriteNumber(PropName_Precedence, ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).Precedence);
            string __value_Name = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).Name;
            if (__value_Name is not null)
            {
                writer.WriteString(PropName_Name, __value_Name);
            }
            global::System.Collections.Generic.IReadOnlyList<string> __value_ShortNameList = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).ShortNameList;
            if (__value_ShortNameList is not null)
            {
                writer.WritePropertyName(PropName_ShortNameList);
                IReadOnlyListStringSerializeHandler(writer, __value_ShortNameList);
            }
            writer.WriteBoolean(PropName_PreferDefaultName, ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).PreferDefaultName);
            string __value_ConfigPlace = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).ConfigPlace;
            if (__value_ConfigPlace is not null)
            {
                writer.WriteString(PropName_ConfigPlace, __value_ConfigPlace);
            }
            string __value_LocaleConfigPlace = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).LocaleConfigPlace;
            if (__value_LocaleConfigPlace is not null)
            {
                writer.WriteString(PropName_LocaleConfigPlace, __value_LocaleConfigPlace);
            }
            string __value_HostConfigPlace = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).HostConfigPlace;
            if (__value_HostConfigPlace is not null)
            {
                writer.WriteString(PropName_HostConfigPlace, __value_HostConfigPlace);
            }
            string __value_ThirdPartyNotices = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).ThirdPartyNotices;
            if (__value_ThirdPartyNotices is not null)
            {
                writer.WriteString(PropName_ThirdPartyNotices, __value_ThirdPartyNotices);
            }
            global::System.Collections.Generic.IReadOnlyDictionary<string, global::Microsoft.TemplateEngine.Abstractions.IBaselineInfo> __value_BaselineInfo = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).BaselineInfo;
            if (__value_BaselineInfo is not null)
            {
                writer.WritePropertyName(PropName_BaselineInfo);
                IReadOnlyDictionaryStringIBaselineInfoSerializeHandler(writer, __value_BaselineInfo);
            }
            global::System.Collections.Generic.IReadOnlyDictionary<string, string> __value_TagsCollection = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).TagsCollection;
            if (__value_TagsCollection is not null)
            {
                writer.WritePropertyName(PropName_TagsCollection);
                IReadOnlyDictionaryStringStringSerializeHandler(writer, __value_TagsCollection);
            }
            string __value_HostData = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).HostData;
            if (__value_HostData is not null)
            {
                writer.WriteString(PropName_HostData, __value_HostData);
            }
            global::System.Collections.Generic.IReadOnlyList<global::System.Guid> __value_PostActions = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).PostActions;
            if (__value_PostActions is not null)
            {
                writer.WritePropertyName(PropName_PostActions);
                IReadOnlyListGuidSerializeHandler(writer, __value_PostActions);
            }
            global::System.Collections.Generic.IReadOnlyList<global::Microsoft.TemplateEngine.Abstractions.Constraints.TemplateConstraintInfo> __value_Constraints = ((global::Microsoft.TemplateEngine.Edge.Settings.TemplateInfo)value).Constraints;
            if (__value_Constraints is not null)
            {
                writer.WritePropertyName(PropName_Constraints);
                IReadOnlyListTemplateConstraintInfoSerializeHandler(writer, __value_Constraints);
            }

            writer.WriteEndObject();
        }
    }
}