Condition

Die Klasse Condition ist in der Namespace TeamWiSE.Runtime.Common definiert.

Enums

Severity

Die SeverityEnum kennt folgende Werte:

None Undefiniert
Question Fragestellung
Log Protokollierung
Info Information
Warning Warnhinweis
Error Fehlermeldung
Severe Schwerwiegende Fehlermeldung
Sysfatal Abbruchmeldung

Eigenschaften

public override String Message { get; }

Übersteuert die Basismethode der Klasse Exception. Liefert den aktuellen Text (mit ausgefüllten Argumenten) der Condition1), vorangegangen mit Schweregrad, Meldungsgruppe und Meldungscode. Da diese Eigenschaft für die Basisklasse Exception als Information standardmäßig nach außen benutzt wird, ist diese Eigenschaft mit einigen Informationen angereichert. Wenn man nur den formatierten Text der Condition braucht, sollte man die Eigenschaft InnerMessage benutzen.

public override String HelpLink { get; }

Übersteuert die Basismethode der Klasse Exception. Liefert eine URL zur Verzweigung auf einen erklärenden Text zur Condition.

public override IDictionary Data { get; }

Übersteuert die Basismethode der Klasse Exception. Liefert zusätzliche Daten zur Condition, in der TAA bekannt als ''Associations''.

public String Application { get; }
public String Group { get; }

Liefert die Anwendung resp. den Namen der Meldungsgruppe.

public UInt16 Code { get; }

Liefert den Code der Meldung innerhalb der Gruppe.

public UInt32 ID { get; }

Liefert eine von Group und Code abgeleitete Nummer. Zwei Conditions mit der gleichen Meldungsgruppe und Meldungsnummer haben die gleiche ID.

public Guid Guid { get; }

Liefert eine eindeutige Kennzeichnung für die Condition.

public DateTime Timestamp { get; }

Liefert das Datum und die Uhrzeit, an der die Condition erzeugt wurde.

public DateTime RemoteTimestamp { get; }

Falls die Condition auf einem anderen System (Server, remote Workstation, …) erzeugt wurde, liefert diese Eigenschaft das Datum und die Uhrzeit, an der die Condition auf dem anderen System erzeugt wurde. Durch Zeitverschiebungen kann diese Zeit vor oder nach dem registrierten Timestamp sein.

public SeverityEnum Severity { get; }

Liefert den Schweregrad der Condition.

public String InnerMessage { get; }

Liefert den Meldungstext der Condition mit ausgefüllten Argumenten.

public String ModuleApplication { get; }
public String ModuleType { get; }
public String ModuleName { get; }

Liefert jeweils den Anwendung, Typ und Namen des Bausteins, in der die Condition erzeugt wurde.

public bool IsOwn { get; }

Gibt an, ob die Condition von dem aktiven Baustein erzeugt wurde.

public String Implementation { get; }

Liefert den Namen der technischen Komponente (bspw. Quelldatei), in der die Condition erzeugt wurde.

public UInt32 Line { get; }

Liefert die Position innerhalb der technischen Komponente (bspw. Quelldatei), in der die Condition erzeugt wurde.

public String Title { get; }

Liefert die Überschrift für die Condition.

public String HelpFile { get; }

Liefert den Namen einer Hilfedatei, in der nähere Erläuterungen zu u.a. dieser Condition zu finden sind.

public UInt32 HelpContextID { get; }

Liefert eine Kennung innerhalb der Hilfedatei, mit der nähere Erläuterungen zu dieser Condition zu finden sind.

public Condition.AssociationDictionary Associations { get; }

Liefert eine benutzerdefinierte Sammlung an Zusatzinformationen zur Condition.

public Condition.ArgumentList Arguments { get; }

Liefert eine Auflistung der Argumente zur Condition.

Methoden

public String ToString()

Übersteuert die Basismethode der Klasse Exception. Liefert die textuelle Darstellung der Meldung.

public void Remove()

Entfernt die Condition aus der Liste registrierter Conditions.

public void Show(Control owner, Boolean keepCondition = false)

Zeigt einen Dialog mit ausführlichen Information zur Condition. Der übergebene owner wird dabei während der Anzeige gesperrt. Nach der Anzeige wird die Condition automatisch gelöscht, es sei denn, das wird mit dem Argument keepCondition explizit verhindert.

public void Show(Boolean keepCondition = false)

Zeigt einen Dialog mit ausführlichen Information zur Condition. Das aktive Hauptfenster des aktuellen Kontextes wird dabei während der Anzeige gesperrt. Nach der Anzeige wird die Condition automatisch gelöscht, es sei denn, das wird mit dem Argument keepCondition explizit verhindert.

public static void ShowAll()

Zeigt einen Dialog mit Informationen zu sämtlichen derzeit registrierten Conditions.

public Boolean Log(Boolean keepCondition = false)

Trägt die Condition in das Windows Eventlog ein. Nach dem Eintrag wird die Condition automatisch gelöscht, es sei denn, das wird mit dem Argument keepCondition explizit verhindert.

public void Raise()

Lässt die Condition aufwerfen. Dabei wird die Condition von den aktuell installierten ConditionHandlern geprüft und ggf. behandelt. Wenn die Condition erfolgreich und abschließend behandelt ist, kehrt die Raise-Methode normal zurück. Sollte eins der installierten ConditionHandlern jedoch zum Schluss kommen, dass vom Aufrufer Aktion unternommen werden muss, so wird seitens der Raise-Methode eine von der Klasse ConditionHandlerException abgeleitete Exception aufgeworfen, mit der aktuellen Condition als InnerException. Folgende, von ConditionHandlerException abgeleitete Exceptions, können auftreten:

  • ExitArbeitsgangException: der Arbeitsgangsstus ist auf Error gesetzt worden. Die Ausführung des Bausteins sollte beendet werden.
  • ExitModuleException: Der ConditionHandler ist der Meinung, dass eine weitere Ausführung des Bausteins nicht angebracht wäre.
  • CallerHandleException: Der ConditionHandler ist der Meinung, dass der aktuelle Aufrufer dieses Bausteins diesen Condition behandeln sollte.
  • UnexpectedResponseException: Die Rückmeldung der ConditionHandler ist inkonsistent mit den aktuellen Möglichkeiten. Diese Exception sollte eigentlich nie auftreten, und deutet auf eine interne Inkonsistenz hin.

Wenn die jeweilige ConditionHandlerException nicht vom Anwendungscode behandelt wird, so wird von der generierten Basis-Assembly die Ausführung des aktuellen Bausteins beendet.

Associations

Über die Eigenschaft Associations können benutzerdefinierte Zusatzinformationen zur Condition abgefragt und festgelegt werden. Sie liefert eine Instanz der Klasse Condition.AssociationDictionary, welche ähnlich funktioniert wie ein Dictionary<String, Object>. Bei der Enumeration über die Associations wird für jedes Element eine KeyValuePair<String, Object>-Struktur verwendet, die den Namen und den Wert einer Association darstellt:

    foreach (KeyValuePair<String, Object> assoc in cnd.Associations) {
        var name = assoc.Key;
        var wert = assoc.Value;
    }

Außerdem sind noch noch folgende Eigenschaften und Methoden definiert.

Eigenschaften

public int Count { get; }

Liefert die Anzahl gesetzter Associations.

public IEnumerable<String> Names { get; }

Liefert eine Liste mit den Namen aller gesetzten Associations.

public Object this[String name] { get; set; }

Ruft den Wert ab, der der Association mit dem Namen name zugeordnet ist, oder legt diesen fest. Wenn die angegebene Asssociation nicht vorhanden ist, löst ein Get-Vorgang eine KeyNotFoundException aus, und durch einen Set-Vorgang wird eine neue Association mit dem angegegebenen Namen erstellt.

Methoden

public bool Contains(String name)

Gibt an, ob eine Association mit dem angegebenen Namen enthalten ist.

public bool TryGetValue(String name, out Object value)

Ruft den Wert ab, der der Association mit dem Namen name zugeordnet ist.

public void Add(String name, Object value)

Fügt eine Association mit dem angegebenen Namen und Wert hinzu. Wenn bereits eine Association mit demselben Namen vorhanden ist, wird eine ArgumentException ausgelöst.

public bool Remove(String name)

Entfernt die Association mit dem angegebenen Namen.

public void Clear()

Entfernt sämtliche Associations.

Argumente

Die Eigenschaft Arguments bietet Zugriff auf die Liste der Argumente. Diese werden aus den Plazhaltern (%<n>) in dem Meldungstext zur Condition abgeleitet, und in einer Instanz der Klasse Condition.ArgumentList aufbewahrt. Bei der Iteration über die Arguments wird für jedes Element eine KeyValuePair<String, Object>-Struktur verwendet, die den Namen des Platzhalters und dessen zugeordneten Wert darstellt:

    foreach (KeyValuePair<String, Object> arg in cnd.Arguments) {
        var name = arg.Key;
        var wert = arg.Value;
    }
In Gegensatz zu TAA-Zugriffsmechanismen in anderen Implementierungsumgebungen findet der Zugriff auf einen einzelnen Platzhalter über eine Zeichenfolge statt. In Zukunft soll es nämlich möglich sein, Platzhalter im Meldungstext mit einem benutzerdefinierten Namen zu versehen, der dann u.a. hier verwendet werden kann. Wenn kein Name vergeben ist, wird die Zeichenfolge Argument<n> verwendet, wobei <n> durch die Positionsnummer bestimmt wird.

Eigenschaften

public int Count { get; }

Liefert die Anzahl in der Meldung verwendeten Argumente.

public IEnumerable<String> Names { get; }

Liefert eine Liste mit den Namen aller in der Meldung verwendeten Argumente.

public Object this[String name] { get; }

Ruft den Wert ab, der dem Argument mit dem Namen name zugeordnet ist. Wenn das angegebene Argument nicht vorhanden ist, wird null zurückgeliefert.

Methoden

public bool Contains(String name)

Gibt an, ob in der Meldung ein Argument mit dem angegebenen Namen enthalten ist.

1)
siehe die Eigenschaft InnerMessage
dotnet:native:condition · Zuletzt geändert: 16.11.2022 10:56

Copyright © 1992-2024 TeamWiSE Gesellschaft für Softwaretechnik mbH         Adressen |  Kontakt |  AGB |  Datenschutzerklärung |  Impressum