Versuchen Sie dies, um Typparameter für generische Typen zu erhalten:
public static string CSharpName(this Type type)
{
var sb = new StringBuilder();
var name = type.Name;
if (!type.IsGenericType) return name;
sb.Append(name.Substring(0, name.IndexOf('`')));
sb.Append("<");
sb.Append(string.Join(", ", type.GetGenericArguments()
.Select(t => t.CSharpName())));
sb.Append(">");
return sb.ToString();
}
Vielleicht nicht die beste Lösung (wegen der Rekursion), aber es funktioniert. Die Ausgaben sehen wie folgt aus:
Dictionary<String, Object>