﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="ConstructorsMatchedToPropertiesStrategy.cs" company="OBeautifulCode">
//   Copyright (c) OBeautifulCode 2018. All rights reserved.
// </copyright>
// <auto-generated>
//   Sourced from NuGet package. Will be overwritten with package update except in OBeautifulCode.Reflection.Recipes source.
// </auto-generated>
// --------------------------------------------------------------------------------------------------------------------

namespace OBeautifulCode.Reflection.Recipes
{
    /// <summary>
    /// Specifies the strategy to use when matching constructors and properties.
    /// </summary>
#if !OBeautifulCodeReflectionSolution
    [global::System.CodeDom.Compiler.GeneratedCode("OBeautifulCode.Reflection.Recipes", "See package version number")]
    internal
#else
    public
#endif
    enum ConstructorsMatchedToPropertiesStrategy
    {
        /// <summary>
        /// Invalid (default).
        /// </summary>
        Invalid,

        /// <summary>
        /// Include constructors where every constructor parameter matches to a property.
        /// If there a default (parameterless) constructor, it will be considered a match
        /// regardless of the properties.
        /// </summary>
        AllConstructorParametersHaveMatchingProperty,

        /// <summary>
        /// Include constructors where every constructor parameter matches to a property
        /// and there are no unmatched properties.
        /// </summary>
        AllConstructorParametersHaveMatchingPropertyWithNoUnmatchedProperties,
    }
}
