【发布时间】:2015-01-02 00:47:40
【问题描述】:
我有一个带有 .NET Framework 4.0 的 C# Web 应用程序,我正在尝试找到一种方法来在 Web.Config 中定义一个变量,该变量可以在 Web.Config 的其他地方引用。
我想要这样的东西。
<?xml version="1.0" encoding="utf-8"?>
<LocalWebConfigVars>
<add key="Var1" value="ServerName1"/>
<add key="Var2" value="DatabaseName1"/>
</LocalWebConfigVars>
<configuration>
<connectionStrings>
<add name="AppConnectionString" connectionString="DATA SOURCE=@Var2 ServerName=@Var1"/>
<add name="OtherStuff" value="@Var1"/>
etc...
目前我必须保持 3 或 4 个硬编码值(一些嵌入其他值只是值)更新为相同的东西,并希望更容易保持同步。
这可能吗?
谢谢。
编辑:
只是一些背景。这成为问题的原因是我们在 web.config 中定义了应用程序数据库实例(以及其他实例特定设置)。我们的测试和生产环境中有多个数据库实例,如果我在测试某些东西时需要切换到不同的数据库实例并且错过了其中一个充满参考的手,我会得到一些奇怪的结果。我试图通过定义一次并在其他任何地方引用它来避免这种情况。
【问题讨论】:
-
为什么不能创建自定义配置类并在类内部分配指向每个键的属性值..?或者甚至更简单地使用
ConfigurationManager.AppSettings来访问属性.. 不要硬编码添加到.config 比硬编码更容易,并继续重新编译代码以进行简单的更改.. -
我不确定您的建议。为了详细说明我的情况,我们将同一 Web 应用程序的多个实例部署到不同的服务器,并将它们指向生产和测试环境中的不同数据库服务器。 web.config 被用来告诉应用程序的特定实例在哪里寻找这些东西。所以总而言之,我们应用程序的每个实例都有一个唯一的 web.config,告诉它它的特定数据库和服务器在哪里。
-
@DJKRAZE 我们确实在应用程序中使用
ConfigurationManager.AppSettings来查看 web.config 变量,例如我的示例中的连接字符串,但我希望有一个自包含的 web.config 语法,它可以让我在 1 个地方更改名称,所有依赖字符串都使用引用的新值更新。 -
就像我说的,你可能想要创建一个自定义类来保存 AppSettings 和 Config Settings 看看这篇文章stackoverflow.com/questions/603009/…
标签: c# asp.net-mvc asp.net-mvc-4 web-config configuration-files