public void SetNextRef(ResolvableBinder next) { if (NextRef == default) { NextRef = next; } }
public void Binding(ref ResolvableBinder target) { if (default == Binder) { Binder = target; mResolvers = new KeyValueList <int, IResolverHandler>(); } }
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); }
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); } } }