Hallo zusammen,
ich hole mir mit
Type myType = typeof(MyClass);
PropertyInfo[] propertyInfos = myType.getProperties();
die Properties eines Typen.
Nun habe ich fuer alle Properties einen beschreibenden Text als Summary
hinterlegt.
Ist es moeglich den Inhalt dieses Summary zu bekommen ?
///Summary
/// The reference-designator of a placement. Must be unique within a placement-list
public string Reference
{
get{return _reference;}
}
Diesen Text "The reference-designator of a placement. Must be unique within a placement-list" wuerde ich gern zur Laufzeit irgendwie bekommen.
Moeglicherweise nicht ueber das PropertyInfo,
aber vielleicht auf einem anderen Weg ?
Viele Grüße
Christoph
Hallo Christoph1968,
diese Information landet nicht in der Assembly, sondern in der zugehörigen XML-Dokumentationsdatei.
Du müsstest also diese auslesen oder die Info direkt aus dem Code extrahieren.
Hallo Christoph1968,
direkt per Reflection kann darauf nicht zugegriffen werden. Aber die *.xml liegt im selben Ordner wie die EXE (nur wenn die XML-Doku auch erstellt wird) und somit kannst du mit den XML-Methode in dieser Datei die <summary> suchen und verwenden.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Hallo,
eigentlich hat die Summary folgendes Format
/// <summary>
/// Text here
/// </summary>
Des weiteren beachtet der Compiler nicht, was im Summary steht. Es ist gewisser Maßen ein Kommentar, das im späteren Code nicht enthalten ist.
Du müsstest hier ein Attribut definieren, das diesen Text enthält; oder aber die Summarys via XML auswerfen (macht Visual Studio, siehe Build Konfiguration - SandCastle benötigt das zum Beispiel) und daraus auslesen.
Grüße
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Guck dir mal den Link an: Jim Blackler · Obtaining inline XML C# documentation at runtime using .NET 2.0
Vielen herzlichen Dank Euch allen.
Ihr seid ja schneller als die Polizei erlaubt.
Ganz liebe Grüße
Christoph
Hallo Christoph1968,
du kannst aber die Properties (zusätzlich) mit einem DescriptionAttribute taggen und dieses bzw. dessen Inhalt dann per Reflection (PropertyInfo.GetCustomAttributes) auslesen.
herbivore
Hallo Herbivore,
vielen Dank fuer Deine Antwort.
Mit Reflection ist so vieles moeglich, das ist echt der Wahnsinn,
je mehr man darueber lernt, desto mehr Lichter gehen ploetzlich rund um einen herum an.
Für diesen Fall lasse ich es damit bewenden, die ApplicationName.xml einzulesen,
auch weil ich die betreffenden Klassen, die in Summe ca. 350 Properties haben, schon recht weit durchkommentiert habe.
Aber fuer einen anderen Knochen, an dem ich gerade herumkaue
koennte deine Info hilfreich sein.
Liebe Gruesse und ein schoenes Wochenende
Christoph