Я пытаюсь реализовать мультикультурное приложение, в котором пользователи могут изменять язык, формат даты и т. Д. Я написал ядро, но оно возвращает исключение:
System.InvalidOperationException: Экземпляр только для чтения.
switch (culture)
{
case SystemCulture.English:
Thread.CurrentThread.CurrentCulture = new CultureInfo(CultureCodes.English);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(CultureCodes.English);
break;
//another cultures here
}
switch (cultureFormat)
{
case SystemDateFormat.European:
var europeanDateFormat = CultureInfo.GetCultureInfo(CultureCodes.Italian).DateTimeFormat;
Thread.CurrentThread.CurrentCulture.DateTimeFormat = europeanDateFormat;
Thread.CurrentThread.CurrentUICulture.DateTimeFormat = europeanDateFormat;
break;
//another cultures here
}
Я нашел некоторую информацию в Интернете, и мне нужно использовать новый экземпляр объекта моей культуры, я изменил свой код, просто добавив:
CultureInfo myCulture;
switch (culture)
{
case SystemCulture.English:
myCulture= new CultureInfo(CultureCodes.English);
break;
}
и ниже, вне выключателя:
Thread.CurrentThread.CurrentCulture = cultureInfo;
Я не знаком с Threads и не уверен, правильно ли я использовал.
Не могли бы вы предложить мне, как это сделать правильно?