Как удалить запись ресурса из Resx в C #? - PullRequest
3 голосов
/ 09 октября 2009

Я знаю, как программно получать и создавать записи ресурсов в файле .resx. Я использую ResourceWriter и ResourceReader для этого подхода. Но теперь я хочу очистить несколько элементов в моем файле .resx и удалить их. Как мне этого добиться?

Ответы [ 2 ]

6 голосов
/ 09 октября 2009

Использование ResXResourceReader и ResXResourceWriter классов.

Считайте свой рекс с помощью устройства чтения и введите его в устройство записи, пропуская записи, которые вы хотите удалить.

0 голосов
/ 09 октября 2017

В моей работе мне пришлось разработать, чтобы удалить из файла культуры то, что у меня было в стандартном файле культуры.

Код такой:

private void ResolveConflicts()
        {
            using (var cultura = new ResXResourceReader(CulturaPath))
            using (var culturaCustom = new ResXResourceReader(CulturaCustomPath))
            {
                Resources = (from cc in culturaCustom.Cast<DictionaryEntry>()
                             where !(from c in cultura.Cast<DictionaryEntry>()
                                     select new { c.Key, c.Value })
                             .Contains(new { cc.Key, cc.Value })
                             select new Tuple<string, string>(
                                  cc.Key.ToString(),
                                  cc.Value.ToString())).ToList();
            }

            ReWriteCustomFile();
        }

        private void ReWriteCustomFile()
        {
            using (var writer = new ResXResourceWriter(CulturaCustomPath))
            {
                Resources.ForEach(r => writer.AddResource(r.Item1, r.Item2));

                writer.Generate();
                writer.Close();
            }
        }

С помощью этого кода он записывается в пользовательской культуре только тем, что отличается от значения по умолчанию.

Надеюсь, это поможет, спасибо!

...