Zugriff

In Api.Config befinden sich einige Methoden, um auf Konfigurationen zuzugreifen, auch auf die Anwendungseinstellungen Api.Config.ApplicationConfiguration() oder die des aktuellen Anwenders Api.Config.CurrentUserConfiguration(). Die allgemeinen Einstellungen befinden sich in der Eigenschaft Basic.

Beispiel: Zugriff auf das Vorgabeland in den Anwendungseinstellungen und in den Benutzereinstellungen.

EnumCountries country = Api.Config.ApplicationConfiguration().Basic.DefaultCountry;
EnumCountries countryUser = Api.Config.CurrentUserConfiguration().Basic.DefaultCountry;

Weitere Einstellungen befinden sich in Unter-Konfigurationen. Diese können mit GetSubConfiguration ausgelesen werden.

ApplicationSubConfigurationCorrespondence correspondenceConfiguration = Api.Config.ApplicationConfiguration().GetSubConfiguration<ApplicationSubConfigurationCorrespondence>();

Einstellungen erweitern

Es ist möglich die Einstellungen für die Anwendung und für die Benützer, um eigene Eigenschaften zu erweitern. Dabei hat man viele Freiheiten, seine Einstellungen zu positionieren.

Zuerst muss man eine neue Klasse auf Basis von ControlBase erstellen und das Attribut [ApplicationConfigurationSubConfiguration] setzen. Wie immer sollte man [Serializable] bei Steuerelementen nicht vergessen.

[Serializable]
[ApplicationConfigurationSubConfiguration]
public class ApplicationSubConfigurationCorrespondence : ControlBase { ... }

Aus den eigenen Eigenschaften werden die Maskenelemente automatisch generiert.

Zusätzlich wird ein Attribut benötigt, welches festlegt ob die Eigenschaft in den Anwendungs- oder / und Benutzereinstellungen definiert werden kann.

[ConfigurationType(ConfigurationTypeAttribute.ConfigurationType.Both)]

Mit Hilfe der Attribute System.ComponentModel.DisplayName und Tab, kann man steuern ob die eigenen Einstellungen

  • Im allgemeinen Bereich
  • In einer eigenen Gruppe
  • Auf einem bestimmten Tab
  • Auf einem eignen Tab
  • Oder sogar in einer eigenen Tab Gruppe dargestellt werden.

Beispiel eigener Tab

[Serializable]
[Tab("[INSERT UNIQUE TAB ID]", "Meine Einstellungen")]
[ApplicationConfigurationSubConfiguration]
public class ApplicationSubConfigurationMySettings : ControlBase
{
    public ApplicationSubConfigurationMySettings() { }

    [ConfigurationType(ConfigurationTypeAttribute.ConfigurationType.User)]
    [System.ComponentModel.DisplayName("Ein Text")]
    public String MyValue { get; set; }
}