private CType GetTypeOfParameter(ParameterInfo p, MemberInfo m)
{
Type t = p.ParameterType;
CType ctype;
if (t.IsGenericParameter && t.GetTypeInfo().DeclaringMethod != null && t.GetTypeInfo().DeclaringMethod == m)
{
// If its a method type parameter from ourselves, just find it.
ctype = LoadMethodTypeParameter(FindMethodFromMemberInfo(m), t);
}
else
{
ctype = GetCTypeFromType(t);
}
// Check if we have an out parameter.
if (ctype.IsParameterModifierType() && p.IsOut && !p.IsIn)
{
CType parameterType = ctype.AsParameterModifierType().GetParameterType();
ctype = _typeManager.GetParameterModifier(parameterType, true);
}
return ctype;
}