Example #1
0
 protected BindAttributeBase(BindScope bindingScope, ConditionSource conditionSource, ConditionComparer conditionComparer, object conditionTarget)
     : this(bindingScope)
 {
     ConditionSource   = conditionSource;
     ConditionComparer = conditionComparer;
     ConditionTarget   = conditionTarget;
 }
 protected BindAttributeBase(BindScope bindingScope, ConditionSource conditionSource, ConditionComparer conditionComparer, object conditionTarget)
     : this(bindingScope)
 {
     ConditionSource = conditionSource;
     ConditionComparer = conditionComparer;
     ConditionTarget = conditionTarget;
 }
Example #3
0
        static Predicate <InjectionContext> ToCondition(ConditionSource source, ConditionComparer comparer, object target)
        {
            return(c =>
            {
                switch (source)
                {
                default:
                case ConditionSource.Container:
                    return ConditionComparer(c.Container, (IContainer)target, comparer);

                case ConditionSource.Element:
                    return ConditionComparer(c.Element, (IInjectableElement)target, comparer);

                case ConditionSource.ContextType:
                    return ConditionComparer(c.Type, (ContextTypes)target, comparer);

                case ConditionSource.Instance:
                    return ConditionComparer(c.Instance, target, comparer);

                case ConditionSource.ContractType:
                    return ConditionComparer(c.ContractType, (Type)target, comparer);

                case ConditionSource.DeclaringType:
                    return ConditionComparer(c.DeclaringType, (Type)target, comparer);

                case ConditionSource.Identifier:
                    return ConditionComparer(c.Identifier, (string)target, comparer);

                case ConditionSource.Optional:
                    return ConditionComparer(c.Optional, (bool)target, comparer);
                }
            });
        }
Example #4
0
        static bool ConditionComparer <T>(T source, T target, ConditionComparer comparer)
        {
            switch (comparer)
            {
            default:
            case Injection.ConditionComparer.Equals:
                return(PEqualityComparer <T> .Default.Equals(source, target));

            case Injection.ConditionComparer.NotEquals:
                return(!PEqualityComparer <T> .Default.Equals(source, target));
            }
        }
Example #5
0
 public ConditionAttribute(string fieldName, ConditionComparer comp, ulong value)
 {
     FieldName = fieldName;
     Comparer  = comp;
     Value     = value;
 }
 public BindAllAttribute(BindScope bindingScope, ConditionSource conditionSource, ConditionComparer conditionComparer, object conditionTarget)
     : base(bindingScope, conditionSource, conditionComparer, conditionTarget)
 {
 }
Example #7
0
 public BindAllAttribute(BindScope bindingScope, ConditionSource conditionSource, ConditionComparer conditionComparer, object conditionTarget) : base(bindingScope, conditionSource, conditionComparer, conditionTarget)
 {
 }
 public BindAttribute(Type contractType, Type[] baseTypes, BindScope bindingScope, ConditionSource conditionSource, ConditionComparer conditionComparer, object conditionTarget)
     : base(bindingScope, conditionSource, conditionComparer, conditionTarget)
 {
     ContractType = contractType;
     BaseTypes = baseTypes;
 }
 public BindAttribute(Type contractType, BindScope bindingScope, ConditionSource conditionSource, ConditionComparer conditionComparer, object conditionTarget)
     : this(contractType, Type.EmptyTypes, bindingScope, conditionSource, conditionComparer, conditionTarget)
 {
 }
Example #10
0
 public BindAttribute(Type contractType, Type[] baseTypes, BindScope bindingScope, ConditionSource conditionSource, ConditionComparer conditionComparer, object conditionTarget)
     : base(bindingScope, conditionSource, conditionComparer, conditionTarget)
 {
     ContractType = contractType;
     BaseTypes    = baseTypes;
 }
Example #11
0
 public BindAttribute(Type contractType, BindScope bindingScope, ConditionSource conditionSource, ConditionComparer conditionComparer, object conditionTarget)
     : this(contractType, Type.EmptyTypes, bindingScope, conditionSource, conditionComparer, conditionTarget)
 {
 }
Example #12
0
 public IBinding When(ConditionSource source, ConditionComparer comparer, object target)
 {
     return(When(ToCondition(source, comparer, target)));
 }