Erweiterte Programmierung


Konfigurationseigenschaften sind eine besondere Variante von persistierbaren Eigenschaften. Im Gegensatz zu den lokalen Eigenschaften aus Abschnitt 1 können sie nicht per Netzwerkzugriff von einem Proxy-Objekt aus gelesen oder geschrieben werden. Ein WPF-Databinding an diese Eigenschaft ist daher nicht möglich. Konfigurationseigenschaften stellen die primitivste Variante an speicherbaren Eigenschaften dar. Sie werden primär zur Einstellung des Verhaltens einer ACComponent verwendet (serverseitige Instanz oder Businessobjekte). 

Der Wert einer Konfigurationseigenschaft kann entweder von der ACComponent selbst verändert werden oder in der Entwicklungsumgebung in der Registerkarte "Konfiguration".

Technisch wird der Wert einer Konfigurationseigenschaft in als ein Eintrag in der Tabelle "ACClassConfig" gespeichert. Mehr dazu lesen Sie bitte im Abschnitt "Konfiguration" nach, weil die eigentliche Konfiguration umfangreicher ist als nur das Speichern von Konfigurationseigenschaften.


Vorab folgendes Codebeispiel:

 

Konfigurationseigenschaften sind Instanzen der generischen Klasse gip.core.autocomponent.ACPropertyConfigValue<T> .

  1. Deklarieren Sie ein privates Feld von diesem Typ.
  2. Deklarieren Sie eine öffentliche Eigenschaft mit getter und setter, die den Zugriff auf die ACPropertyConfigValue-Instanz kapselt. In der getter- und setter-Methode lesen oder setzen sie die ValueT-Eigenschaft.
  3. Verwenden Sie die ACPropertyConfig-Attributklasse, um die Konfigurationseigenschaft dem iPlus-Typsystem bekannt zu geben.
  4. Instanzieren sie die ACPropertyConfigValue-Klasse im Konstruktor oder der überschriebenen ACInit()-Methode ihrer von ACComponent abgeleiteten Klasse. Im Konstruktor der ACPropertyConfigValue-Klasse übergeben Sie im ersten Parameter den this-Pointer der ACComponent. Im zweiten Parameter geben Sie exakt den gleichen Namen an wie Sie Ihre Konfigurationseigenschaft im C#-Code deklariert haben (Schritt 2). Der dritte Parameter ist der Default-Wert. Bitte beachten Sie dass der Default-Wert erst beim erstmaligen Zugriff auf die ValueT-Eigenschaft gesetzt wird und somit ein neuer Eintrag in die ACConfig-Tabelle gemacht wird.

 

Wichtig: Caching!

Bitte bedenken Sie, dass Config-Werte gecached sind. Bei mehrmaligen Zugriffen auf ValueT erfolgt keine frische Datenbankabfrage. Rufen Sie explizit die Methode ACComponent.ResetConfigValuesCache() auf, um den Cache zurückzusetzen und ein erneutes Laden von der Datenbank zu forcieren.