我们有一个应用程序,它包含几个组件(Web应用程序,Windows服务,Web API等),它们通过电子邮件(MailGun),SMS(Twilio)和自动电话向应用程序的用户发送消息电话(Twilio)。所有这些消息都包含在实际发送消息时插入的动态信息(例如,名字,用户名,时间戳等)。
消息的所有原始文本都存储在所有组件之间共享的项目中.resx文件中的格式字符串中。示例字符串看起来像"Hello {0}, you have a notification!"
,其中{0}
在运行时使用string.Format
替换为用户的第一个名称。
这种结构导致数百个文本资源难以维护。是否有更好的方法/架构来管理这些类型的资源或处理动态通信?或者是否有任何工具/库可以帮助简化此类功能?
答案 0 :(得分:1)
Twilio开发者传道者在这里。
虽然我没有提供C#的经验,但我已经开始研究大规模的Ruby on Rails应用程序,并且当处理许多带插值的字符串时,我能想到的最接近的等价物是国际化。
在Rails中,这是通过提供一个yaml文件来处理的,该文件包含可以包含其他键的键(从而将消息限定为某些区域)和模板字符串。
虽然使用这种方法会减少文件数量,但这个文件可能会经常进行更改,因此您需要权衡利弊。
虽然只是一个想法。让我知道它是否有帮助。