Replace TextCollection with MLKeys
Replace TextCollection with MLKeys ist eine Maintenance-Routine, die im Methoden-Code TextCollection-Aufrufe durch MLKeys ersetzt.
Im Login-Dialog muss der Maintenance-Mode aktiviert werden, damit Sie verfügbar ist. Sie kann in der IDE über das Menü Tools / Checks / Replace TextCollection with MLKeys aufgerufen werden.
Im Feld TextCollection muss eine Text-Collection angegeben werden.
Mit dem Button Analyze wird eine Analyse gestartet ohne, dass Änderungen durchgeführt werden. Die Resultate werde in der Error-Liste ausgegeben.
Der Button Replace führt die Änderungen aus. Dazu werden die betroffenen Elemente ausgecheckt, geändert und gespeichert. Nach erfolgreichen Compile müssen die Elemente wieder eingecheckt werden.
Beschreibung
Bei der Einführung der MLKeys mit der Version 4.2 wurden bei Code-Messages die Aufrufe der Text-Collections mithilfe einer Routine durch MLKeys ersetzt. Nicht ersetzt wurden freie Verwendungen von Text-Collections außerhalb der Code-Messages.
Neue Meldungen werden als MLKey im Wörterbuch angelegt und in den Message-Text-Collections (z.B. ctMessages
) werden keine neuen Einträge mehr hinzugefügt.
Damit werden diese Text-Collection immer mehr obsolet und können irgendwann vielleicht sogar komplett abgeräumt werden.
Dafür muss aber sichergestellt werden, dass es keine Aufrufe mehr gibt.
Das betrifft aber nur wenige Text-Collections, die als Sammlung z.B. für Meldungstexte verwendet werden. Die überwiegende Anzahl an Text-Collections, hat auch weiterhin eine Daseinsberechtigung - z.B. weil sie für Combobox-Listen verwendet werden oder Constant-Werte abbilden. Die Routine muss deshalb für die betroffenen Text-Collections explizit ausgeführt werden.
Durchsucht werden alle Elemente mit Methoden-Code:
- Components - Methods und Property Get-/Set-Methods
- Forms - Methods
- DataContracts - Property Get-/Set-Methods
- Services - Methods
- Service-Hosts - Methods
- Service-Proxies - Methods
- Code-Transformations
Im ersten Schritt wird nach der Verwendung der Text-Collection im Code gesucht - also z.B. nach ctMessagesFactory
.
Im zweiten Schritt wird versucht, diese Verwendung durch einen MLKey zu ersetzen. Gelingt das nicht, wird die betreffende Stelle als Warnung ausgegeben.
Folgende Verwendungen werden erkannt:
Namespace.ctMessagesFactory.GetText(this.Global, 5282)
Namespace.ctMessagesFactory.GetText(this.Global, 5282, "")
Namespace.ctMessagesFactory.GetText(this.Global, 5282, FSstring.Null)
Namespace.ctMessagesFactory.Get(this.Global, 5282).Text
Namespace.ctMessagesFactory.Get(this.Global, 5282).Value[this.Global.SelectedLanguage]
Diese Aufrufe werden ersetzt durch:
this.Global.GetMLText(MLKey.MSG_b4699cd744c94d439b06a9c68f29eaf7)
Der Ausdruck darf keinen Zeilen-Umbruch beinhalten. In diesem Fall schlägt die Stelle als Warnung auf. Nach manueller Korrektur der Stelle kann erneut Analyze / Replace aufgerufen werden.