C# 处理配置文件中的异常消息模板
C# Handling Exception Message Template in Config File
我有一些函数可以使用特定的字符串格式为不同的消息发送电子邮件。
下面是一个示例:
String BodyText = "Information \r\n \r\n ID: " + id + " \r\n \r\n Title: " + title + " \r\n \r\n Description: " + description"
由于消息包含变量,是否可以在配置文件中配置我的消息?
谢谢。
这里有几个选项:
您可以从配置中解析字符串中的变量,给出如下所示的内容:
我这里的电子邮件已发送到{{firstname}}等
要实现这一点,您可以进行正则表达式搜索以将变量值注入您的符号,即 {{firstname}}
或者您可以考虑实现类似 visitor gang of four pattern 这样的东西,这将使单元测试更容易每个变量都添加到代码中的设置,而不是每次引入变量时都需要修改的硬编码 blob 的一部分。
您可以使用 Roslyn 从配置中提取代码并即时编译它。由于可能发生的安全和无数错误情况,我强烈不推荐这样做。
使用 String.Format
并将您的字符串放入配置文件中,如下所示:
<appSettings>
<add key="BodyText" value="Information \r\n \r\n ID: {0}\r\n \r\n Title: {1}\r\n \r\n Description: {2}"/>
</appSettings>
然后你可以像这样在代码中使用这个值:
var bodyText = ConfigurationManager.AppSettings["BodyText"];
String.Format(bodyText, id, title, description);
注意,您需要添加对 System.Configuration
的项目引用,然后将相应的 using
语句添加到文件中。
我有一些函数可以使用特定的字符串格式为不同的消息发送电子邮件。
下面是一个示例:
String BodyText = "Information \r\n \r\n ID: " + id + " \r\n \r\n Title: " + title + " \r\n \r\n Description: " + description"
由于消息包含变量,是否可以在配置文件中配置我的消息?
谢谢。
这里有几个选项:
您可以从配置中解析字符串中的变量,给出如下所示的内容:
我这里的电子邮件已发送到{{firstname}}等
要实现这一点,您可以进行正则表达式搜索以将变量值注入您的符号,即
{{firstname}}
或者您可以考虑实现类似 visitor gang of four pattern 这样的东西,这将使单元测试更容易每个变量都添加到代码中的设置,而不是每次引入变量时都需要修改的硬编码 blob 的一部分。您可以使用 Roslyn 从配置中提取代码并即时编译它。由于可能发生的安全和无数错误情况,我强烈不推荐这样做。
使用 String.Format
并将您的字符串放入配置文件中,如下所示:
<appSettings>
<add key="BodyText" value="Information \r\n \r\n ID: {0}\r\n \r\n Title: {1}\r\n \r\n Description: {2}"/>
</appSettings>
然后你可以像这样在代码中使用这个值:
var bodyText = ConfigurationManager.AppSettings["BodyText"];
String.Format(bodyText, id, title, description);
注意,您需要添加对 System.Configuration
的项目引用,然后将相应的 using
语句添加到文件中。