public object TryGetBinding(IBindingName name, IBindingKey key, object[] extras)
        {
            ValueBindingContext ret = null;
            object theValue         = null;

            if (GetBinding(name, out ret))
            {
                if (!ret.Get(key, this, out theValue, extras))
                {
                    theValue = null;
                }
            }

            if (theValue == null)
            {
                foreach (var fallback in m_fallbacks)
                {
                    theValue = fallback(name, key, extras);

                    if (theValue != null)
                    {
                        break;
                    }
                }
            }

            return(theValue);
        }
        IValueBindingContext <T> IBindingContext.Bind <T> (IBindingName name)
        {
            ValueBindingContext ret = null;

            GetBinding(name, true, out ret);
            return(ret.As <T>());
        }
        public IUnsafeValueBindingContext Bind(IBindingName name, IBindingKey key)
        {
            ValueBindingContext ret = null;

            GetBinding(name, true, out ret);
            return(ret.Unsafe(key));
        }
Beispiel #4
0
 public ValueBingindContextAdapterWith(IBindingName name, ValueBindingContext adaptee, ValueBindingContextAdapterWith <T, J> parent)
 {
     m_adaptee = adaptee;
     m_name    = name;
     m_parent  = parent;
     m_me      = new ValueBindingContextAdapterWith <T, K>(name, m_adaptee);
 }
Beispiel #5
0
        public object Get(IBindingName name, IBindingKey key, params object[] extras)
        {
            object ret = TryGetBinding(name, key, extras);

            if (ret == null)
            {
                throw new BindingNotFound(name, key);
            }
            return(ret);
        }
        public void CheckRequiremets(IBindingKey key, IBindingName name)
        {
            var req = BindingRequirements.Instance.With(name, key);

            foreach (var requiremet in m_requirements)
            {
                if (req.Equals(requiremet))
                {
                    throw new BindingSelfRequirement();
                }
            }
        }
        bool TryGet <T> (IBindingName name, IBindingKey key, out T t, object[] extras)
        {
            object ret = TryGetBinding(name, key, extras);

            if (ret != null)
            {
                t = (T)ret;
                return(true);
            }

            t = default(T);
            return(false);
        }
        public override bool Equals(object obj)
        {
            IBindingName other = obj as IBindingName;

            if (other == null)
            {
                return(false);
            }



            return(other.Name.Equals(Name));
        }
Beispiel #9
0
        object TryGetBinding(IBindingName name, IBindingKey key, object[] extras)
        {
            ValueBindingContext ret = null;

            if (GetBinding(name, out ret))
            {
                object theValue = null;
                if (ret.Get(key, this, out theValue, extras))
                {
                    return(theValue);
                }
            }

            return(null);
        }
        bool GetBinding(IBindingName name, bool create, out ValueBindingContext valueBindingContext)
        {
            if (m_namedBindings.TryGetValue(name, out valueBindingContext))
            {
                return(true);
            }

            if (create)
            {
                valueBindingContext   = new ValueBindingContext(name);
                m_namedBindings[name] = valueBindingContext;
                return(true);
            }

            valueBindingContext = null;

            return(false);
        }
 public IBindingRequirement With(IBindingName name, IBindingKey key)
 {
     return(new ObjectBindingRequirement(name, key));
 }
Beispiel #12
0
 public void CheckRequiremets(IBindingKey key, IBindingName name)
 {
     m_adaptee.CheckRequiremets(key, name);
 }
        bool IBindingContext.TryGet <T> (IBindingName name, out T t, params object[] extras)
        {
            IBindingKey key = new BindingKey(typeof(T));

            return(TryGet(name, key, out t, extras));
        }
        T IBindingContext.Get <T> (IBindingName name, params object[] extras)
        {
            IBindingKey key = new BindingKey(typeof(T));

            return((T)Get(name, key, extras));
        }
 public ValueBindingContext(IBindingName name)
 {
     Name = name;
 }
 object IUnsafeBindingContext.TryGet(IBindingName name, IBindingKey key, params object[] extras)
 {
     return(m_adaptee.TryGetBinding(name, key, extras));
 }
 bool GetBinding(IBindingName name, out ValueBindingContext valueBindingContext)
 {
     return(GetBinding(name, false, out valueBindingContext));
 }
 public IUnsafeValueBindingContext Bind(IBindingName name, IBindingKey key)
 {
     return(m_adaptee.Bind(name, key));
 }
Beispiel #19
0
 public BindingNotFound(IBindingName bindingName, IBindingKey bindingKey) : base(string.Format("With {0}, {1}", bindingName, bindingKey))
 {
 }
 public ObjectBindingRequirement(IBindingName name, IBindingKey key)
 {
     m_name = name;
     m_key  = key;
 }
 public object Get(IBindingName name, IBindingKey key)
 {
     return(m_adaptee.Get(name, key));
 }
 public IBindingRequirement With <T>(IBindingName name)
 {
     return(new ObjectBindingRequirement(name, new BindingKey(typeof(T))));
 }
Beispiel #23
0
 public ValueBindingContextAdapterWith(IBindingName name, ValueBindingContext adaptee)
 {
     m_adaptee = adaptee;
     m_name    = name;
 }
Beispiel #24
0
 public IValueBindingContext <T, K> With <K> (IBindingName name)
 {
     return(new ValueBindingContextAdapterWith <T, K>(name, m_adaptee));
 }