Ich verwende Reflexion, um eine Methodensignatur, z.Wie kann ich den primitiven Namen eines Typs in C# bekommen?
foreach (var pi in mi.GetParameters()) {
Console.WriteLine(pi.Name + ": " + pi.ParameterType.ToString());
}
Das funktioniert ziemlich gut, aber es gibt die Art von Primitiven als „System.String“ out statt „String“ und „System.Nullable`1 [System.Int32]“ anstelle von „int?“ . Gibt es eine Möglichkeit, den Namen des Parameters so zu erhalten, wie er im Code aussieht, z.
public Example(string p1, int? p2)
druckt
p1: string
p2: int?
statt
p1: System.String
p2: System.Nullable`1[System.Int32]
Ich kann kaum auf dein Update warten :) – basarat
'CSharpCodeProvider.GetTypeOutput' ändert' System.String' nicht in 'string' obwohl. –
@Mark: Hmm ... tut es auf meiner Box ... –