Auflistung aller Forms mit GetType().Assembly.GetTypes() übergeordneter Forlder?

  • VB.NET
  • .NET (FX) 4.0

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von michl75.

    Auflistung aller Forms mit GetType().Assembly.GetTypes() übergeordneter Forlder?

    Hallo zusammen,

    mit folgenden Code liste ich auf einfache Art und Weise alle Forms auf, die in meinem gesamten VS-Projekt enthalten sind:

    VB.NET-Quellcode

    1. For Each t As Type In Me.GetType().Assembly.GetTypes()
    2. If t.Namespace = "CRM" Then
    3. If UCase(t.BaseType.ToString) = "SYSTEM.WINDOWS.FORMS.FORM" Then
    4. DataGridView1.Rows.Add(t.[Übgergeordneter Folder??], t.Name, t.Namespace) ' t.FullName
    5. End If
    6. End If
    7. Next


    In dem Code sieht man auch [Übgergeordneter Folder??] --> ich möchte den übergeordneten Ordner (Folder) wo dieses "Programm" (oder Form) liegt ausgeben.

    Suche nun schon eine weile! Kann es sein, dass es dies gar nicht zu realisieren geht? ...

    Kleine Hilfe wäre super :thumbup: :) :)

    Gruß Michl
    Bilder
    • ZZZZZZZ9999.JPG

      18,52 kB, 172×213, 80 mal angesehen
    wüsste nicht wie das gehen sollte.
    AFAIK sind in einer Assembly Datentypen, aber keine Folder.
    Folder sind im Dateisystem, eine Assembly ist aber kein Dateisystem.

    (aber vielleicht(!!) irre ich mich auch - es gibt immerhin Attribute, die tatsächlich den Dateipfad propagieren - aber das ist eine annere Baustelle)
    1. Verwende nicht UCase(x), sondern x.ToUpper()
    2. Verwende nicht BaseType.ToString() oder soetwas. sondern einfach

    VB.NET-Quellcode

    1. typeof(Form).IsAssignableFrom(t)


    Aber für den Ordner brauchst du ein Attribut oder etwas ähnliches. Es gäbe noch die Möglichkeit über Mono.Cecil nen Runtime Patch zu schreiben und bei einem Debug-Build dann über den Stacktrace an die Dateinamen zu gelangen. Aber dafür ist das nicht da und es ist auch nicht sinnvoll^^

    Ich frage mich viel mehr, was dein eigentliches Ziel ist, denn das scheint mir ein schlechtes Design zu sein.
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    @michl75 Was ist Dein Plan?
    Wozu soll das dienen?
    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!
    @jvbsl: Danke, probiere ich dann nachher mal aus, vielen Dank!

    @RodFromGermany: Es wird eine kleine Benutzerberechtigung! Anforderung war, zugriff auf Programm/Form einfach mit ja oder nein - über das gesamte VS-Projekt.


    Noch eine kleine Frage angehängt.
    Mein Projekt scheint mir mittlerweile sehr groß geworden zu sein :) ... Anbei Bild... unter Visual Studio 2015 ist im Taskmanager VS mit dem Projekt fast 2,3 GB angegeben. Hin und wieder braucht auch beim Bearbeiten des Dataset's ewig lange bis eine Änderung etc. umgesetzt wird und manchmal heist es auf zu wenig Speicher. Da kommt das dieses "Out..." (weis nicht mehr genau). Zu wenig Speicher kann eigentlich nicht sein, hab 16 GB.
    Was meint Ihr?
    Bilder
    • ZZZZZZZ999000.JPG

      11,82 kB, 424×36, 74 mal angesehen
    Out of MemoryException nennt sich das Ding was da fliegt.
    So ist die Fehleranalyse Recht schwer, aber lädst du irgendwelche Bitmaps in den Arbeitsspeicher ohne sie danach wieder zu .Disposeen. Oder liest du Ordnerstrukturen mit vielen Dateien direkt in den RAM ohne sie Dach wieder freizugeben?
    Beim Laden des Projektes unter VS 2015 gehts gleich mal hoch auf 1,5 und braut sich dann auf - bis eben 2,2/2,3 GB

    EDIT:
    Habe so eben mal einige Images die als Icon drinnen waren entfernt, da hab ich wohl nicht aufgepasst..... Da waren welche drinnen, die a groß waren so 1000x1000px und auch welche, die 500-1000kb hatten...
    Man man, habe mal eben die hälfte entfernt aus dem Projekt und die daraus resultierenden "Fehler" korrigiert und auf einmal schwindet der "Speicher" auf unter 1 GB...

    Das sind wohl tatsächlich die Icons als Images. Habe viele selbst gemacht und ich Dödel !!! habe die ned richtig verkleinert...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „michl75“ ()