private static string GetGenericParameterTypeName(ITypeDetails parameterType, IEnumerable<ITypeDetails> orderedTypeContext)
{
if (parameterType.IsGenericType)
{
return parameterType.FullName + "<" + string.Join(",", parameterType.GenericArguments.Select(x => GetGenericParameterTypeName(x, orderedTypeContext))) + ">";
}
else
{
// Is this something that's in our context?
int idx = 0;
foreach (var genericArgument in orderedTypeContext)
{
if (genericArgument.Equals(parameterType))
{
return string.Format("MVAR {0}", idx);
}
idx++;
}
}
// Fall back to standard process
return GetFriendlyTypeName(parameterType);
}