Laden...

[gelöst] Reflection.PropertyInfo - Summary-String eines Property auslesen ?

Erstellt von Christoph1968 vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.339 Views
C
Christoph1968 Themenstarter:in
93 Beiträge seit 2007
vor 12 Jahren
[gelöst] Reflection.PropertyInfo - Summary-String eines Property auslesen ?

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

5.742 Beiträge seit 2007
vor 12 Jahren

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.

6.911 Beiträge seit 2009
vor 12 Jahren

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!"

16.834 Beiträge seit 2008
vor 12 Jahren

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

2.891 Beiträge seit 2004
vor 12 Jahren
C
Christoph1968 Themenstarter:in
93 Beiträge seit 2007
vor 12 Jahren

Vielen herzlichen Dank Euch allen.

Ihr seid ja schneller als die Polizei erlaubt.

Ganz liebe Grüße

Christoph

49.485 Beiträge seit 2005
vor 12 Jahren

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

C
Christoph1968 Themenstarter:in
93 Beiträge seit 2007
vor 12 Jahren

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