Code Dokumentation XML funktioniert nicht

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Rattenfänger.

    Code Dokumentation XML funktioniert nicht

    Hallo Liebe Gemeinde,

    versuche mich grad daran meinen Code zu dokumentieren. Was so auch funktioniert. Nur wenn ich das in einer XML Datei haben will geht das nicht. Anbei der Code.

    C#-Quellcode

    1. /// <include file='Summary_InfoFile.xml' path='Docs/NN_LayerCreation/members[@name="Select_NNetwork"]/*'/>
    2. public INeuralNetwork Select_NNetwork(string NN_Name, int InputCounter, int OutputCounter)
    3. {
    4. INeuralNetwork ReturningNN = null;
    5. switch (NN_Name)
    6. {
    7. case "GettinTrade":
    8. {
    9. ReturningNN = GettinTest_001(InputCounter, OutputCounter);
    10. break;
    11. }
    12. case "TradeStop":
    13. {
    14. break;
    15. }
    16. }
    17. return ReturningNN;
    18. }


    und hier die XML

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8" ?>
    2. <Docs>
    3. <SummaryInfo>
    4. <Members name="StartCalc">
    5. <summary>
    6. Auswahl der zu Trainirenden KI
    7. NN_Name: 'GettinTrade' für Trade Einstieg
    8. NN_Name: 'TradeStop' für Trade Ausstieg
    9. </summary>
    10. <param name="NN_Name">Auswahl der KI</param>
    11. <param name="TrainingTable">Tabelle mit TrainingsDaten(Validierungsdaten)</param>
    12. <param name="TestingTable">Tabelle mit Testdatensatz</param>
    13. <param name="TempFileName">Temporärer KI SpeicherStand</param>
    14. <param name="LastSaveFileName">Der zueltzt gültige KI SpeicherStand</param>
    15. <param name="LastSaveFileName_Detailed">Detailierter Speicherung der zuletzt gültigen KI</param>
    16. <param name="InputCounter">Anzahl der Parameter eingaben</param>
    17. <param name="OutputCounter">Anzahl der Parameter Ausgänge</param>
    18. </Members>
    19. </SummaryInfo>
    20. <NN_LayerCreation>
    21. <members>
    22. <Select_NNetwork>
    23. <summary>
    24. Auswahl der zu Trainirenden KI NN_Name:
    25. 'GettinTrade' für Trade Einstieg NN_Name:
    26. 'TradeStop' für Trade Ausstieg
    27. </summary>
    28. <param name="InputCounter" > Anzahl der Parameter eingaben</param>
    29. <param name="OutputCounter" > Anzahl der Parameter Ausgänge</param>
    30. </Select_NNetwork>
    31. <GettinTest_001>
    32. <summary>
    33. Lernergebnis zwischen 70 - 75 % KI Eingang
    34. LernZeit 40 sec. / pro Runde
    35. </summary>
    36. <param name='InputCounter' > Anzahl der Parameter eingaben</param>
    37. <param name='OutputCounter' > Anzahl der Parameter Ausgänge</param>
    38. </GettinTest_001>
    39. </members>
    40. </NN_LayerCreation>
    41. </Docs>


    Schon mal im voraus, danke für jede hilfestellung.
    @Rattenfänger Bei mir sieht das ganze so aus:

    C#-Quellcode

    1. /// <summary>
    2. /// aaaaa
    3. /// </summary>
    4. /// <param name="NN_Name">bbb</param>
    5. /// <param name="InputCounter">ccc</param>
    6. /// <param name="OutputCounter">ddd</param>
    7. /// <returns>eee</returns>
    8. public INeuralNetwork Select_NNetwork(string NN_Name, int InputCounter, int OutputCounter)
    9. {
    10. INeuralNetwork ReturningNN = null;
    11. switch (NN_Name)
    12. {
    13. case "GettinTrade":
    14. {
    15. ReturningNN = GettinTest_001(InputCounter, OutputCounter);
    16. break;
    17. }
    18. case "TradeStop":
    19. {
    20. break;
    21. }
    22. }
    23. return ReturningNN;
    24. }
    WindowsFormsApplication1.xml
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany

    Ja das hatte ich auch vorher, aber ich finde das wird dann zu unübersichtlich.
    Deshalb wollte ich das auch in eine XML datei, besonders bei sich wiederholendenden <param> Infos, wollte ich eine eigene XMl Datei erstellen.Dazu hätte ich auch noch ne frage, aber dazu später.


    anbei der link zur Microsoft Hilfeseite dazu.

    https://docs.microsoft.com/de-de/dotnet/visual-basic/language-reference/xmldoc/include

    Rattenfänger schrieb:

    eine eigene XMl Datei erstellen
    Wozu?
    Die Studio-XML-Dateien dienen der IDE, bei der Code-Eingabe die betreffenden Informationen zur Verfügung zu stellen.
    Wenn Du was anderes willst - Was wäre das?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ja das will ich ja, die Informationen angezeigt bekommen.
    Nur habe ich mir gedacht, das ich mit <include />, diese Informationen in eine Xml datei auslagern kann.
    So währe der Code etwas sauberer.

    Rattenfänger schrieb:

    <include />
    Was soll das machen?
    Dann ist aber Deine Fragestellung / Problembeschreibung völlig falsch.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Was soll das machen?


    Rein Theoretisch sollen die Information aus der XML Datei(Summary, param etc.) dort ausgelagert werden können. und der <include \> Befehl liest die Informationen aus der XML und zeigt sie dir an.
    Dadurch soll eine bessere lesbarkeit des Codes erreicht werden. Ich beziehe mich hier auch mal wieder auf einen externen Link.

    stackoverflow.com/questions/58…appearing-in-intellisense

    soll auch mit intellisense funktionieren !?

    Edit:
    Also im Objektkatalog werden die Informationen dazu angezeigt, nur bei Intellisense nicht!?
    warum?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Rattenfänger“ ()

    Wenn die XML-Datei namens Summary_InfoFile.xml im Projektverzeichnis ist (nicht im Debug-Verzeichnis, sondern wo auch die cs-Datei mit der Klasse ist), dann muss über der Prozedur stehen:

    C#-Quellcode

    1. /// <include file='Summary_InfoFile.xml' path='Docs/NN_LayerCreation/members/*'/>
    und nicht

    C#-Quellcode

    1. /// <include file='Summary_InfoFile.xml' path='Docs/NN_LayerCreation/members[@name="Select_NNetwork"]/*'/>
    Bilder
    • XmlDocInFile.png

      22,25 kB, 1.104×293, 74 mal angesehen
    • ClassStubDeclaration.png

      14,95 kB, 856×207, 79 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()

    @VaporiZed Super, erstmal schön das es bei dir funktioniert. Nutzt du das Regulär?

    Ich habe es jetzt mal so getestet wie du, es geht immer noch nicht || :/ .

    Gruß

    Edit:
    @VaporiZed
    So Teste immer noch und jetzt funktioniert es. Aber ich verstehe die Logik, grad nicht? :S siehe Xml Documantation_002.png
    Bilder
    • XML Documantation.png

      276,83 kB, 1.936×1.065, 63 mal angesehen
    • XML Documantation_002.png

      166,31 kB, 1.933×1.073, 74 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Rattenfänger“ ()

    Allein bei Bild 1 sehe ich, dass der Dateiname nicht stimmt. Summary_File.xml <-> Summary_InfoFile.xml
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ich habe das schon korrigiert, jedoch teste ich das erstmal in einem Testprojekt um die Logik zu verstehen. Siehe Bild 2.
    Und auch hier funktioniert es nur sporadisch bzw. Ich verstehe aktuell die Logik dahinter nicht.

    Ich kopiere auch jedesmal die xml in den debug ordner bzw. habe eingestellt das eine kopie erstellt wird.
    Und habe es auch im Build eingestellt das das XML dokument verwendet werden soll.

    Edit:
    Habe es geschafft!!! Jetzt Funktioniert es. Ich werde hier in diesem Thread die Lösung dann etwas später Präsentieren!

    Edit2:
    Und jetzt funktioniert es wieder nicht!
    Ich habe das Projekt nur geschlossen und wieder geöffnet. Und die Informationen werden nicht angezeigt.
    Projekt bereinigt und neu erstellen, hilft auch nicht! Auch Objektkatalog öffnen und wieder schließen, hilft nicht!
    Und ich habe nichts mehr geändert!!!
    Was könnte das Problem sein?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Rattenfänger“ ()

    Habe den Fehler gefunden!

    Es lag an der XMl datei und dem Objektkatalog. Sobald die XML geändert wird verschwinden die Informationen.

    Die Lösung ist in den Objektkatalog zu gehen und, temporär die einstellung an einer sub zu ändern siehe bild2, danach wieder auf den vorheriegen Wert wieder ändern.
    Evtl. gibt es eine einstellung für den Objektkatolog, bei der man das nicht mehr machen muss. Anbei ein paar bilder was mit der Technik möglich ist!

    Gruß
    Bilder
    • XML Documantation_003.png

      213,3 kB, 1.926×1.073, 79 mal angesehen
    • XML Documantation_004.png

      248,74 kB, 1.928×1.073, 83 mal angesehen