2016-11-18 4 views
0

У нас есть приложение, которое содержит несколько компонентов (веб-приложение, службы Windows, веб-API и т. Д.), Которые отправляют сообщения пользователям приложения по электронной почте (MailGun) , SMS (Twilio) и автоматические телефонные звонки (Twilio). Все эти сообщения содержат динамическую информацию, которая вставляется, когда сообщение действительно отправлено (например, имя, имя пользователя, отметки времени и т. Д.).Управление содержимым всех сообщений, отправленных приложением

Весь необработанный текст для сообщений сохраняется в строках формата в файлах .resx в проекте, который разделяется между всеми компонентами. Строка образца может выглядеть как "Hello {0}, you have a notification!", где {0} заменяется на первое имя пользователя во время выполнения с использованием string.Format.

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

+1

Можете ли вы сохранить текст в базе данных? – Botonomous

ответ

1

Twilio разработчик евангелист здесь.

В то время как у меня нет опыта работы на C#, я работал над крупномасштабными приложениями Ruby on Rails и самым близким эквивалентом, о котором я могу думать при работе со многими строками с интерполяциями, была интернационализация.

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

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

Просто идея, хотя. Дайте мне знать, если это поможет.

Смежные вопросы