MyEnvironment class

Provides information about the operating system, system architecture, user account or the own assembly.

Archived content: This source code is currently inactive and may be outdated or no longer maintained or functional.

Diese Klasse wurde durch FieldLog ersetzt. FieldLog ist ein schnelles und umfassendes Logging-Werkzeug für .NET-Anwendungen. Es integriert mit der OSInfo-Klasse außerdem eine ausführliche Erkennung der Umgebung und unterstützt vergangene und aktuelle Windows-Versionen mit höherer Genauigkeit. Die OSInfo-Klasse aus dem FieldLog-Quelltext kann auch unabhängig verwendet werden, wenn die Protokollierungsfunktionen nicht benötigt werden.

Mit dieser Klasse kann die Betriebssystemversion (Windows XP, Vista, 7 usw.) ermittelt werden, und ob es sich um ein 64-Bit-System handelt. Anhand dieser Angaben kann das Programm dann zur Laufzeit entscheiden, was zu tun ist. Ebenso lassen sich Service-Pack und die Buildnummer sowie ein lesbarer Name des Betriebssystems wie „Windows XP“ oder „Windows Server 2008 R2“ abfragen. (Es werden nur Windows-Betriebssysteme unterstützt.)

Außerdem kann die Klasse einige Assembly-Attribute der laufenden Anwendung auslesen, u. a. den Titel (AssemblyTitle), die Beschreibung (AssemblyDescription) und die ausführliche Versionsangabe (AssemblyInformationalVersion). Zusammen mit Build-Werkzeugen wie GitRevisionTool oder SvnRevisionTool, die die Revisionsnummer aus der Quellcodeverwaltung in eins dieser Attribute schreiben, lässt sich dann in einem Info-Fenster die genaue Build-Revision anzeigen, ohne dass sie jedes Mal von Hand irgendwo eingetragen werden muss.

Schließlich kann man noch abfragen, ob der angemeldete Benutzer Mitglied in einer bestimmten Windows-Benutzergruppe ist. Darüber lassen sich z. B. Berechtigungskonzepte umsetzen, ohne dass die Anwendung die Benutzerverwaltung durchführen muss.

Die MyEnvironment-Klasse wird auch von der ErrorHandling-Klasse verwendet, um im Fehlerprotokoll möglichst genaue Angaben zur Systemumgebung und Programmversion festzuhalten.

Compatibility: .NET Version 4.0 or newer

Mit kleinen Anpassungen funktioniert diese Klasse auch ab .NET 2.0, wo ich sie bereits lange eingesetzt habe. Die letzten Aktualisierungen erfordern jedoch .NET 4.0.

Beispiel

Der folgende Beispielcode zeigt, wie die MyEnvironment-Klasse verwendet werden kann:

// Gather app and system version information
string info =
    "App version: " + MyEnvironment.AssemblyFileVersion +
        " (" + MyEnvironment.AssemblyInformationalVersion + ")\n" +
    "OS product: " + MyEnvironment.OSProductName + "\n" +
    "OS version: " + MyEnvironment.OSName + " " +
        (MyEnvironment.Is64BitOS ? "x64" : "x86") +
        " Build " + MyEnvironment.OSBuild + " " +
        MyEnvironment.OSServicePackString + "\n";

// Restrict access to a Windows user group
if (!MyEnvironment.IsCurrentUserInWindowsGroup("MyApp administrators"))
{
    throw new SecurityException("Access to this function is not granted.");
}

Download

MyEnvironment.cs14.0 KiBQuelltext der MyEnvironment-Klasse

Licence and terms of use

This software is released under the terms of the simplified BSD licence. You can find the detailed terms and conditions in the download.

Statistic data

  • Created on 2007-07-26, updated on 2012-11-11.
  • Ca. 310 lines of code, estimated development costs: 310 - 1 200 €