避免在Web.config中重复的值

时间:2016-05-01 02:03:03

标签: c# web-config

<appSettings>
    <add key="ApiKey" value="xyz"/>
</appSettings>

<system.net>
  <mailSettings>
    <smtp deliveryMethod="Network">
      <network host="smtp.cloudmailapp.com" port="587" userName="user@gmail.com" password="xyz" />
    </smtp>
  </mailSettings>
</system.net>

如您所见,API密钥&#34; xyz&#34;出现两次,硬编码。

我可以在这里使用代码吗?我希望能够致电

WebConfigurationManager.AppSettings["ApiKey"]

在Web.config文件中,或类似的东西。

2 个答案:

答案 0 :(得分:1)

我认为对你的问题的简短回答是否定的。配置文件不能包含C#代码,就像您尝试开箱即用一样。

我找到了另一篇帖子,提出了一个与此非常相似的问题。它来自几年前,但它有很多反馈,看起来可能适用于此。我只想添加一个链接,而不是总结最佳答案。 Variables within app.config/web.config

答案 1 :(得分:1)

我不确定您的工作流程是什么将变量添加到配置文件中,但也许作为其中的一部分,您可以在web.config的顶部运行某些内容,以确保您不会重复。

虽然在web.config中放置配置值很方便,但它实际上并不是存储应用程序设置的地方。这有很多原因:

  • 可维护性(您的重复问题是一个)
  • 安全性(除非您加密web.config)
  • 对web.config的更改重新启动.NET应用程序

将它们放入数据库并从那里检索它们要好得多。处理数据库后,您可以设置索引,以便不允许重复等等。