Beim Schreiben einer Lambda - Methodensyntax möchte ich eine Funktion, die für alle Klassen mit Attributen jeden Klassennamen und seine Attribute ausgibt.C# Erstellen einer lokalen String - Variablen in linq - Lambda - Ausdruck
var x1 = Assembly.GetExecutingAssembly()
.GetTypes()
.Select(type => type
.GetCustomAttributes(false)
.Select(attribute => type.Name + " - " + attribute.ToString())
.ToList())
.ToList();
x1.ForEach(type => type.ForEach(str => Console.WriteLine(str)));
Ausgang:
<ClassName> - <ProgramName>.<AttributeName>
<ClassName> - <ProgramName>.<AttributeName>
<>c__DisplayClass6 - System.Runtime.CompilerServices.CompilerGeneratedAttribute
Ich verstehe, dass die letzte Zeile in der Ausgabe, da ist einen lokalen Lambda-Ausdruck Variable.
Wie vermeidet man die Anzeige der letzten Zeile?
können Sie wie If überprüfen (type.IsDefined (typeof (CompilerGeneratedAttribute), false)) und es überspringen. – riteshmeher
danke! Es klappt. –
froh, Ihnen zu helfen! – riteshmeher