public void RegisterGenerationInfo(CompositeModel compositeModel, TypeGenerationInfo genInfo, Int32 typeID) { this._allGenerationInfos.GetOrAdd(compositeModel, muudel => new ConcurrentDictionary <Int32, TypeGenerationInfo>()).TryAdd(typeID, genInfo); }
private static TMethod GetMethodBase <TMethod>(CILTypeBase propType, TMethod method, TypeGenerationInfo thisGenInfo) where TMethod : CILMethodBase { var declType = method.DeclaringType; return(TypeGenerationUtils.GetMethodForEmitting(t => TypeGenerationUtils.CreateTypeForEmittingCILType(TypeGenerationUtils.GenericDefinitionIfGArgsHaveGenericParams(declType).MakeGenericType(propType.GetGenericArgumentsArray()), thisGenInfo.GenericArguments, null), method)); //var declType = method.DeclaringType; //return propType.ContainsGenericParameters() ? // TypeGenerationUtils.GetMethodForEmitting( type => TypeGenerationUtils.CreateTypeForEmitting( declType.IsGenericType ? // declType.GetGenericTypeDefinition().MakeGenericType( propType.GetGenericArguments() ) : // declType, thisGenInfo.GenericArguments, null ), method ) : // (TMethod) MethodBase.GetMethodFromHandle( method.MethodHandle, ( declType.IsGenericType ? // declType.GetGenericTypeDefinition().MakeGenericType( propType.GetGenericArguments() ) : // declType ).TypeHandle ); }