2013-03-25 10 views
6

Ist es möglich, eine benutzerdefinierte Kultur zu erstellen, ohne sie in Windows zu registrieren? Jede Lösung und Dokumentation bezieht sich auf die Klasse CultureAndRegionInfoBuilder mit dem Aufruf Register, nachdem eine neue Kultur erstellt wurde. Die Registrierung der benutzerdefinierten Kultur ändert jedoch die im OS sichtbaren Kulturen und erfordert darüber hinaus Administratorrechte.Benutzerdefinierte Kultur erstellen, ohne sie zu registrieren

Wenn es nicht möglich ist, da sind zwei Möglichkeiten der Registrierung eine neue Kultur zu vermeiden:

  1. vermeiden individuelle Kultur so lange wie möglich verwenden, das heißt zu Standard Kulturen bleiben. Es kann jetzt funktionieren, aber ich weiß nicht wie lange.
  2. registrieren benutzerdefinierte Kultur während der Installation der Anwendung. Dies ist nicht die Option, da wir keine Administratorrechte garantieren können, da wir die Anwendung remote aktualisieren möchten.

Gibt es irgendwelche Möglichkeiten?

+0

Haben Sie [CreateFromLdml] (http://msdn.microsoft.com/en-us/library/system.globalization.cultureandregionofobuilder.createfromldml.aspx) versucht, das eine Datei lädt, die Sie [Save] (http: // msdn .microsoft.com/de-de/library/system.globalization.cultureandregioninfobuilder.save.aspx) d früher und mit Ihrer App bereitstellen? – rene

+0

@rene wie auf der MSDN erwähnt "An dieser Stelle können Sie die Methode" Register "aufrufen und die wiederhergestellte benutzerdefinierte Kultur für andere Anwendungen verfügbar machen.". Also muss die neu erschaffene Kultur trotzdem registriert werden. Aber wir konnten keine Register-Methode ohne Administratorrechte aufrufen. –

Antwort

1

Sie müssen die benutzerdefinierte Kultur registrieren, um sie verwenden zu können.

+0

Ja, aber gibt es keine andere Möglichkeit, eine Kultur lokal in meiner App zu verwenden? –

+1

Es gibt nicht, aber die Orte, an denen Sie eine verwenden möchten (Zahlenformatierung, Datumsformatierung), nehmen Sie einen IFormatProvider oder die spezifische NumberFormatInfo oder DateTimeFormatInfo und Sie können diese Werte überschreiben. Haben Sie einen bestimmten Ort, an dem Sie diese Einschränkungen schon kennen? Ein bestimmtes Szenario, das Sie aktivieren möchten? –

+0

jetzt bin ich OK mit Standardkulturen. Aber es ist möglich, dass ich in Zukunft benutzerdefinierte Kulturen erstellen muss, einige spezielle Formatierungen. Dann werde ich definitiv die Idee übernehmen, die Sie in Ihrem Kommentar gegeben haben - es wird in Ordnung sein, eine benutzerdefinierte Realisierung von IFormatProvider für die "speziellen Kulturen" zu erstellen und sie wo nötig zu übergeben. Vielen Dank! –

Verwandte Themen