InnerMessage
Die Klasse Condition
ist in der Namespace TeamWiSE.Runtime.Common
definiert.
Die SeverityEnum
kennt folgende Werte:
None | Undefiniert |
Question | Fragestellung |
Log | Protokollierung |
Info | Information |
Warning | Warnhinweis |
Error | Fehlermeldung |
Severe | Schwerwiegende Fehlermeldung |
Sysfatal | Abbruchmeldung |
public override String Message { get; }
Übersteuert die Basismethode der Klasse Exception
. Liefert den aktuellen Text (mit ausgefüllten Argumenten) der Condition
1), 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; } public String ModuleOperation { get; }
Liefert jeweils den Anwendung, Typ und Namen sowie2) die ausgelöste Operation 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
.
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.
Ü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.
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.
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.
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; }
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.
public bool Contains(String name)
Gibt an, ob in der Meldung ein Argument mit dem angegebenen Namen enthalten ist.