Die Klasse Application
in System.Windows.Forms
hat einige Eigenschaften, die sehr nützlich sein können. Zum Beispiel:
Warum sind diese in einer Klasse in System.Windows.Forms
? Was, wenn ich in einer Konsolenanwendung auf CommonAppDataPath
zugreifen möchte? Müsste ich dann auf System.Windows.Forms.dll verweisen, oder gibt es eine Alternative für Konsolenanwendungen?
Zitiert nach MSDN System.Windows.Forms Namespace-Dokumentation:
Der System.Windows.Forms-Namespace enthält Klassen zum Erstellen von Windows-basierten Anwendungen, die die umfassenden Funktionen der Benutzeroberfläche im Microsoft Windows-Betriebssystem voll ausnutzen.
Der einzige wirkliche Grund, warum ich die Application-Klasse im System.Windows.Forms-Namespace sehen kann, ist, dass sie Windows-Nachrichten behandelt, die normalerweise von Form-Steuerelementen gepostet werden.
Für die Pfade können Sie auch die Klasse Environment
in .NET betrachten:
und es gibt eine ganze Reihe von "speziellen" Ordnern, nach denen Sie fragen können.
Der Name CompanyName und andere Optionen werden standardmäßig aus dem Ordner "AssemblyInfo.cs" in Ihrem Ordner "Properties" abgerufen. Wenn Sie eine solche Datei haben, können Sie diese auch selbst im Code aufrufen.
Hm, mit diesen Pfaden müssen Sie Fügen Sie den Firmennamen und das Produkt hinzu Name und so selbst obwohl ...
Ja, das macht die System.Windows.Forms-Assembly für Sie. Wenn Sie keine Winforms-App haben, müssen Sie das selbst tun, das stimmt.
Marc
Informationen wie "ProductName" stammen von der Hauptbaugruppe in einer WinForms-Anwendung. Es gibt keine "Haupt" Assembly in einer ASP.NET-Anwendung.
Wenn Sie unter einem Dienstkonto ohne ein Profil ausgeführt werden (was bei einer ASP.NET-Anwendung häufig der Fall sein kann), wird kein UserAppDataPath vorhanden sein. Tatsächlich versucht die Dereferenzierung der UserAppDataPath-Eigenschaft eine Ausnahme auszulösen.
Aus diesen Gründen ist es nicht sinnvoll, diese Informationen einer ASP.NET-App zugänglich zu machen.
Die Anwendungsklasse startet die Win32-Meldungsschleife, die eng mit Windows-Formularen verknüpft ist.