Entschärfung: Kultur und Verteilervorgänge in WPF-Apps

In Apps für .NET Framework 4.6 und 4.6.1 gehen Änderungen an den CultureInfo.CurrentCulture- oder CultureInfo.CurrentUICulture-Eigenschaften, die innerhalb eines Dispatcher-Objekts vorgenommen werden, am Ende dieses Dispatchervorgangs verloren. Auf ähnliche Weise werden außerhalb des Dispatchervorgangs vorgenommene Änderungen an CultureInfo.CurrentCulture und CultureInfo.CurrentUICulture möglicherweise nicht widergespiegelt, wenn der Vorgang ausgeführt wird.

Der Grund liegt in einer Änderung in ExecutionContext, durch die CultureInfo.CurrentCulture und CultureInfo.CurrentUICulture im Ausführungskontext gespeichert werden. WPF-Verteilungsvorgänge speichern den Ausführungskontext, der dazu verwendet wurde, um den Vorgang zu beginnen und stellen den vorherigen Kontext wieder her, wenn der Vorgang abgeschlossen ist. Da CultureInfo.CurrentCulture und CultureInfo.CurrentUICulture jetzt Bestandteil dieses Kontexts sind, bleiben innerhalb eines Dispatchervorgangs an ihnen vorgenommene Änderungen außerhalb des Vorgangs nicht erhalten.

Auswirkungen

Praktisch gesehen bedeutet dies, dass Änderungen an den Eigenschaften CultureInfo.CurrentCulture und CultureInfo.CurrentUICulture zwischen Rückrufen der WPF-Benutzeroberfläche und anderem Code in einer WPF-Anwendung nicht weitergeben werden.

Problemumgehung

Apps, die von dieser Änderung betroffen sind, können sie auf eine von zwei Arten umgehen:

Siehe auch

Neuausrichtungsänderungen