динамически жесткий флажок, словарь в .cs - PullRequest
0 голосов
/ 17 марта 2011

Этот вопрос о подходе к программированию.Я только недавно начал разработку wpf на c # и мне нужна помощь здесь.По сути, сейчас у меня есть 2 файла - 1. Текстовый файл, вызывающий его (Textfile) и 2. XML-файл.

Мой программный подход такой:

  1. Запустите программу (этопрограмма содержит жестко запрограммированные флажки)
  2. Выполните анализ XML.У меня есть словарь со значениями и жестко закодированными ключами.Если потомки атрибута xml не содержат этих значений, в панели стека программы будут созданы новые флажки.
  3. Выполните синтаксический анализ текстового файла.Используя «Текстовый файл», как обсуждалось ранее, если у меня есть определенные строки в текстовом файле, я буду проверять или снимать флажки с жестко заданными флажками
  4. Событие кнопки сборки.Затем пользователи будут вручную редактировать по своему усмотрению (отметьте или снимите галочку с любого понравившегося флажка) и нажмите кнопку «Создать», и это событие запишет новую копию «Текстовый файл».Если флажок был установлен, будут записаны отдельные строки.

Так что давайте назовем новую цель, найденную в файле XML, как «Exec_newtarget».Итак, что мне нужно сделать, это:

  1. Запустите программу
  2. Выполните анализ XML.Сравните со значениями словаря и ключами, если значение «Exec_newtarget» не существует, оно будет жестко запрограммировано в объекте словаря в файле .cs, а флажок «Exec_newtarget» будет создан в файле .cs
  3. Выполните разбор "Textfile".При этом будут установлены или сняты жестко установленные флажки
  4. Событие кнопки сборки.Новый «Текстовый файл» будет записан, и если флажок «Exec_newtarget» установлен, «Exec_newtarget» будет записан в виде строки в «Текстовый файл»
  5. Запустите программу еще раз
  6. Выполните анализ XML(Чтобы проверить наличие новых целей, таких как «Exec_nexttarget»)
  7. Выполните анализ Texfile.На этот раз, так как «Exec_newtarget» был написан ранее (как в 4.), будет проверяться «Exec_newtarget»
  8. Событие кнопки «Создать» записывает новый «Текстовый файл» ... ... промыть и повторить

Итак, мой вопрос: возможно ли динамически жестко кодировать значения словаря, ключи и флажки в файл .cs?если так, как я должен это сделать.Или есть ли лучший способ для работы моей программы?

Редактировать 1: Здесь я объясню вам, почему я делаю это.

  1. Мой проект заключается в автоматизации ручных процессов.Ранее пользователям приходилось переходить к этому «текстовому файлу», выбирать нужные им цели и редактировать вручную.Например, если им нужно «Exec_newtarget», они перейдут к «#Exec_newtarget» и удалят «#».Существует более 40 таких строк, которые нужно отредактировать, и это может быть затруднительно, если вы делаете это по отдельности.
  2. Основной процесс - запуск файла bat.Когда исполняется файл bat, строки, найденные в «Textfile», которые по существу будут найдены в файле xml, затем будут выполнять процессы по мере необходимости.Этот xml-файл постоянно пополняется новыми атрибутами и потомками.
  3. Для поддержания структуры XML-файла, а также для упрощения, автоматически создается копия «Текстового файла» вместо добавления новых строк вручную.в текстовый файл

Ответы [ 2 ]

1 голос
/ 17 марта 2011

Похоже, ваш подход немного сложнее.Но это может быть только мое понимание.

Прежде всего, посмотрите на DataBinding в WPF .Это удаляет GUI из уравнения, потому что GUI обновляется автоматически на основе данных, которые вы к нему привязываете (действительно хорошие вещи).

Во-вторых, вы хотите управлять словарями / структурами данных.Если я правильно читаю вашу проблему, вы сначала загрузите весь XML в словарь, затем вы можете добавить в словарь все пропущенные «жестко закодированные» значения (возможно, с пустым значением?).Эти недостающие ключи могут быть прочитаны из отдельного .txt-файла, который вы включаете в свое приложение.Или даже быть разделенным запятой параметром в App.Config.(Избегайте жесткого кодирования)

0 голосов
/ 17 марта 2011

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

Вместо этого вы можете использовать вашу программу, которая содержит список флажков. Этот список может быть проанализирован из вашего XML-файла (вам нужен только один файл). В этом файле вы можете хранить имена флажков, а также значения.

Преимущество такого решения в том, что вам нужен только один внешний файл вместо двух, и вам не нужен самозаменяющийся код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...