Пример #1
0
        /// <summary>
        ///     Adds the given member selection rule to the correct member selection collection.
        /// </summary>
        /// <param name="memberSelectionRule">The member selection rule to add.</param>
        /// <returns>Returns the current instance.</returns>
        private CreateInstanceOptions <T> AddMemberSlectionRule(IMemberSelectionRule memberSelectionRule)
        {
            switch (_currentMemberSelectionTarget)
            {
            case MemberSelectionRuleTarget.Member:
                MemberSelectionRules.Add(memberSelectionRule);
                break;

            case MemberSelectionRuleTarget.MemberChildren:
                MemberChildrenSelectionRules.Add(memberSelectionRule);
                break;

            case MemberSelectionRuleTarget.Factory:
                _currentFactory?.AddSelectionRule(memberSelectionRule);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(_currentMemberSelectionTarget),
                                                      _currentMemberSelectionTarget,
                                                      $"The member selection target '{_currentMemberSelectionTarget}' is not supported.");
            }

            return(this);
        }