2016-11-18 30 views
0

我们有一个应用程序,其中包含通过电子邮件(MailGun)向应用程序的用户发送消息的多个组件(Web应用程序,Windows服务,Web API等) ,短信(Twilio)和自动电话(Twilio)。所有这些消息都包含实际发送消息时插入的动态信息(例如,名字,用户名,时间戳等)。管理应用程序发出的所有消息的内容

所有消息的原始文本都存储在项目中的.resx文件中的格式字符串中,该项目在所有组件之间共享。示例字符串可能看起来像"Hello {0}, you have a notification!",其中{0}在运行时使用string.Format替换为用户的名字。

该结构已导致拥有数百个难以维护的文本资源。是否有更好的方法/体系结构来管理这些类型的资源或处理动态通信?或者是否有任何工具/库可以帮助简化这种类型的功能?

+1

你可以将文本存储在数据库中吗? – Botonomous

回答

1

Twilio开发者传道这里。尽管我没有提供C#的经验,但我曾经在大规模的Ruby on Rails应用程序中工作过,并且在处理具有插值的许多字符串时,我可以想到的最接近的等效方法是国际化。

在Rails中,这是通过提供一个yaml文件来处理的,该文件包含可以包含其他键(从而将消息定向到某些区域)的键和模板字符串。

虽然使用这种方法会减少文件的数量,但这一个文件可能会经历常规更改,因此您的折衷就在那里。

虽然只是一个想法。让我知道它是否有帮助。

相关问题