| File: RuntimeSource\Configuration.Binder\Specs\Types\ObjectSpec.cs | Web Access |
| Project: src\src\Tools\ConfigurationSchemaGenerator\ConfigurationSchemaGenerator.csproj (ConfigurationSchemaGenerator) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.CodeAnalysis; using SourceGenerators; namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration { public sealed record ObjectSpec : ComplexTypeSpec { public ObjectSpec( INamedTypeSymbol type, ObjectInstantiationStrategy instantiationStrategy, ImmutableEquatableArray<PropertySpec>? properties, ImmutableEquatableArray<ParameterSpec>? constructorParameters, string? initExceptionMessage) : base(type) { InstantiationStrategy = instantiationStrategy; Properties = properties; ConstructorParameters = constructorParameters; InitExceptionMessage = initExceptionMessage; } public ObjectInstantiationStrategy InstantiationStrategy { get; } public ImmutableEquatableArray<PropertySpec>? Properties { get; } public ImmutableEquatableArray<ParameterSpec>? ConstructorParameters { get; } public string? InitExceptionMessage { get; } } public enum ObjectInstantiationStrategy { None = 0, ParameterlessConstructor = 1, ParameterizedConstructor = 2, } }