IronAHK.Scripting.ILMirror.MethodReplaceGenerics C# (CSharp) Méthode

MethodReplaceGenerics() private méthode

private MethodReplaceGenerics ( MethodInfo Original ) : MethodInfo
Original MethodInfo
Résultat MethodInfo
        MethodInfo MethodReplaceGenerics(MethodInfo Original)
        {
            if(Original.DeclaringType.IsGenericType)
            {
                Type NewDeclaring = GrabType(Original.DeclaringType);
                
                if(NewDeclaring != Original.DeclaringType)
                {
                    MethodInfo Ret = TypeBuilder.GetMethod(NewDeclaring, FindMatchingGenericMethod(Original) as MethodInfo);
                    return MethodReplaceGenerics(Ret);
                }
            }
            
            if(Original.IsGenericMethod)
            {
                Type[] Replace = Original.GetGenericArguments();
                
                if(!ReplaceGenericArguments(Replace))
                    return Original;
                
                return Original.GetGenericMethodDefinition().MakeGenericMethod(Replace);
            }
            
            return Original;
        }