public static string ExpandGenericTypeName(Type type)
{
var nameOnly = type.Name.LeftPart('`');
var sb = StringBuilderCache.Allocate();
foreach (var arg in type.GetTypeGenericArguments())
{
if (sb.Length > 0)
sb.Append(",");
sb.Append(arg.ExpandTypeName());
}
var fullName = $"{nameOnly}<{StringBuilderCache.ReturnAndFree(sb)}>";
return fullName;
}