コード例 #1
0
 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 );
        }