private static TypeInfo NextTypeInfo(Type initialArg, TypeInfo curTypeInfo) { var lookingUp = initialArg; TypeInfo nextTypeInfo; if (curTypeInfo.TypeChain == null) { curTypeInfo.TypeChain = new Dictionary <Type, TypeInfo>(); } if (!curTypeInfo.TypeChain.TryGetValue(lookingUp, out nextTypeInfo)) { nextTypeInfo = new TypeInfo(); if (TypeHelper.CanCache(lookingUp)) { curTypeInfo.TypeChain[lookingUp] = nextTypeInfo; } } return(nextTypeInfo); }