【问题标题】:C# Handling Exception Message Template in Config FileC# 处理配置文件中的异常消息模板
【发布时间】:2019-09-16 13:01:23
【问题描述】:

我有一些函数可以为不同的消息使用特定的字符串格式发送电子邮件。

下面是一个示例:

String BodyText = "Information \r\n \r\n ID: " + id + " \r\n \r\n Title: " + title + " \r\n \r\n Description: " + description"

由于消息包含变量,我的消息是否可以在配置文件中进行配置?

谢谢。

【问题讨论】:

    标签: c# app-config


    【解决方案1】:

    你有几个选择:

    1. 您可以从配置中解析字符串中的变量,给出如下所示的内容:

      我在此处的电子邮件已发送至 {{firstname}} 等。

      要实现这一点,您可以进行正则表达式搜索以将变量值注入您的符号,即{{firstname}},或者您可以考虑实现类似四人组模式的访问者帮派,这将使每个变量的设置更加可单元测试是对代码的附加,而不是每次引入变量时都需要修改的硬编码 blob 的一部分。

    2. 您可以使用 Roslyn 从配置中提取代码,然后即时编译它。由于可能发生的安全性和无数错误场景,我强烈不建议这样做。

    【讨论】:

      【解决方案2】:

      使用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 语句添加到文件中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-12
        • 2011-09-16
        • 2012-07-02
        • 1970-01-01
        • 2013-07-19
        相关资源
        最近更新 更多