Модель плагина с предоставленным пользователем RegEx - PullRequest
0 голосов
/ 19 ноября 2009

У меня есть программа на C # WPF, которая анализирует определенные файлы журналов. Каждый журнал содержит строки данных в формате, который содержит адрес и смещение данных.

Например, некоторые файлы журналов могут иметь формат:

mmio address : data

или некоторые могут иметь формат:

write address : data

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

Я хочу сделать этот RegEx управляемым из приложения. Я не хочу жестко кодировать RegEx каждого формата в исходном коде. Пользователь должен иметь возможность изменить существующий RegEx или добавить новый RegEx для нового типа файла журнала. Я должен предоставить ему что-то вроде таблицы, из которой он может выбрать конкретную строку или добавить новую строку для нового файла журнала

Таблица:

Имя журнала - RegEx

Журнал MMIO - MMIO ([0-9] {8}): ([0-9] {8}) -> переключатель

Запись журнала - запись ([0-9] {8}): ([0-9] {8}) -> переключатель

Как я могу это сделать? Могу ли я сохранить это в каком-то файле конфигурации или использовать модель плагина, которую я не очень понимаю, как реализовать.

1 Ответ

2 голосов
/ 19 ноября 2009

Система плагинов является абсолютным перебором. Просто используйте App.config, чтобы сохранить выражения и показать их в поле со списком или что-то подобное. Посмотрите на эту замечательную серию статей , как получить доступ к конфигурации. Дополнительная ссылка для пространства имен System.Configuration взята из MSDN.

...