Exemplo n.º 1
0
 public ReplaceRegistrationStrategy(ReplacementBehavior behavior)
 {
     Behavior = behavior;
 }
Exemplo n.º 2
0
        public static void OrderedAdd <T>(this IList <T> list, T item, Comparison <T> onCompare, ReplacementBehavior replacementBehavior = ReplacementBehavior.KeepBoth)
        {
            var index = 0;

            while (index < list.Count && onCompare(list[index], item) <= 0)
            {
                index++;
            }

            switch (replacementBehavior)
            {
            case ReplacementBehavior.Ignore:
                if (index > 0 && onCompare(list[index - 1], item) == 0)
                {
                    return;
                }
                goto default;

            case ReplacementBehavior.Replace:
                if (index > 0 && onCompare(list[index - 1], item) == 0)
                {
                    list.RemoveAt(index - 1);
                    index--;
                }
                goto default;

            default:
                list.Insert(index, item);
                break;
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Replaces existing service registrations based on the specified <see cref="ReplacementBehavior"/>.
 /// </summary>
 /// <param name="behavior">The behavior to use when replacing services.</param>
 public static RegistrationStrategy Replace(ReplacementBehavior behavior)
 {
     return(new ReplaceRegistrationStrategy(behavior));
 }