Как получить текущие региональные настройки в C#?

Большинство ответов, кажется, о Подверсии, таким образом, здесь Вы имеете один о Мерзавце (и другой DVCS).

В распределенной системе управления версиями при слиянии одного ответвления в другого Вы создаете новый фиксация слияния , который помнит, как Вы разрешили, что слияние, и помнит всех родителей слияния . Этой информации просто недоставало Подверсии до версии 1.5; необходимо было использовать дополнительные инструменты, такие как SVK или svnmerge для этого. Эта информация очень важна при выполнении повторенного слияния.

Благодаря этим информационным распределенным системам управления версиями (DVCS) может автоматически , находят общего предка (или общих предков), также известными как основа слияния, для любых двух ответвлений. Смотрите на схему ASCII-творчества изменений ниже (я надеюсь, что она не сделала был слишком ужасно искажен),

---O---*---*----M---*---*---1
     \                /
       \---*---A/--*----2

, Если мы захотим объединить ответвление '2' в ответвление '1', то общий предок, которого мы хотели бы использовать для генерации слияния, будет версией (фиксация), отмеченная 'A'. Однако, если система управления версиями не записывала информацию о родителях слияния ('M' является предыдущим слиянием тех же ответвлений), это не смогло бы найти, что это - фиксация, и это нашло бы фиксацию 'O' как общий предок (основа слияния) вместо этого..., который уже повторит включенные изменения и приведет к большому конфликту слияния.

Распределенная система управления версиями должна была сделать его правильно, т.е. они должны были сделать слияние очень легким (не будучи должен отметить/отметить родителей слияния и предоставить информацию слияния вручную) с самого начала, потому что способ заставить кого-то еще получать код в проект не состоял в том, чтобы предоставить ему доступ фиксации, но вытягивать из его репозитория: получите фиксации из другого репозитория и выполните слияние.

можно найти информацию о слиянии в Подверсии 1.5. в Подверсия 1.5 Информации о версии . Знаменитые проблемы: Вам нужно отличающийся (!) опции объединить ответвление в соединительную линию, чем соединительная линия слияния в ответвление, иначе. не все ответвления равны (в распределенных системах управления версиями, они [обычно] технически эквивалентны).

24
задан Shuric 9 October 2009 в 07:48
поделиться

3 ответа

Как предложил @Christian, ClearCachedData - это метод, который следует использовать. Но согласно MSDN:

Метод ClearCachedData не обновить информацию в Свойство Thread.CurrentCulture для существующие потоки

Таким образом, вам нужно сначала вызвать функцию, а затем запустить новый поток. В этом новом потоке вы можете использовать CurrentCulture для получения свежих значений культуры.

class Program
{
    private class State
    {
        public CultureInfo Result { get; set; }
    }

    static void Main(string[] args)
    {
        Thread.CurrentThread.CurrentCulture.ClearCachedData();
        var thread = new Thread(
            s => ((State)s).Result = Thread.CurrentThread.CurrentCulture);
        var state = new State();
        thread.Start(state);
        thread.Join();
        var culture = state.Result;
        // Do something with the culture
    }

}

Обратите внимание, что если вам также необходимо сбросить CurrentUICulture, вы должны сделать это отдельно

Thread.CurrentThread.CurrentUICulture.ClearCachedData()
29
ответ дан 28 November 2019 в 23:34
поделиться

Попробуйте найти нужные настройки в SystemInformation или изучите WMI с помощью классов в System.Management/System.Diagnostics , вы также можете использовать LINQ to WMI

0
ответ дан 28 November 2019 в 23:34
поделиться

Thread.CurrentThread.CurrentCulture.ClearCachedData () похоже, что это приведет к повторному считыванию данных о культуре при следующем доступе.

6
ответ дан 28 November 2019 в 23:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: