protected internal GroupGenericTypeCore(Type[] types, Dictionary <Types, ClrTypeCore> cache) { if (cache == null) { cache = new Dictionary <Types, ClrTypeCore>(); } _BindedGenericCache = cache; _GroupTypes = types; if (types != null) { foreach (var type in types) { if (type != null && type.IsGenericType() && type.ContainsGenericParameters()) { var cnt = type.GetGenericArguments().Length; var core = ClrGenericTypeCore.GetGenericTypeCore(type, cache); _GenericTypeCores[cnt] = core; } } } }
protected internal ClrTypeCoreWithGeneric(Type ntype, Type[] gtypes, Dictionary <Types, ClrTypeCore> cache) { List <Type> types = new List <Type>(); if (ntype != null) { _NormalCore = ClrTypeCore.GetTypeCore(ntype); types.Add(ntype); } if (gtypes != null && gtypes.Length > 0) { if (gtypes.Length > 1) { _GenericCore = new GroupGenericTypeCore(gtypes, cache); } else { _GenericCore = ClrGenericTypeCore.GetGenericTypeCore(gtypes[0], cache); } types.AddRange(gtypes); } _GroupTypes = types.ToArray(); }