Пример #1
0
 public void SetNextRef(ResolvableBinder next)
 {
     if (NextRef == default)
     {
         NextRef = next;
     }
 }
Пример #2
0
 public void Binding(ref ResolvableBinder target)
 {
     if (default == Binder)
     {
         Binder     = target;
         mResolvers = new KeyValueList <int, IResolverHandler>();
     }
 }
Пример #3
0
        public static ResolvableBinder CreateResolvableRef(ref ResolvableInfo info, ref IntegerMapper <Type> typeIDMapper)
        {
            ResolvableBinder result = new ResolvableBinder(ref typeIDMapper)
            {
                alias         = info.aliasID,
                interfaceType = info.interfaceID,
                insType       = info.typeID
            };

            return(result);
        }
Пример #4
0
 public void RecursiveAndCheckRef(ref ResolvableInfo info, bool isCreateWhenEmpty, out ResolvableBinder result)
 {
     if (IsSameRef(ref info))
     {
         result = this;
     }
     else
     {
         if (NextRef == default)
         {
             if (isCreateWhenEmpty)
             {
                 result = CreateResolvableRef(ref info, ref mTypeID);
                 SetNextRef(result);
             }
             else
             {
                 result = default;
                 return;
             }
         }
         else
         {
             NextRef.RecursiveAndCheckRef(ref info, isCreateWhenEmpty, out result);
         }
     }
 }