4

有没有人有任何经验/试图这样做?

我们的 .NET 应用程序有一些相当复杂的 XML 配置,并且认为如果我们可以使用我们的配置对象层次结构来动态构建 UI,使用反射和来自这些对象的属性的属性/元数据来呈现选项会很好给用户生成配置。

让它变得非常通用会很好,所以我们可以为它提供任何 .NET XML 配置对象(在合理范围内),它会反映它并允许填充它。

4

1 回答 1

1

您需要准确考虑 .NET 中的 Config 文件的用途。它们是定义应用程序不同部署之间差异的地方。因此,当您谈论基于编码逻辑动态更改配置时,我认为您可能理解错了方向。您的代码应该从通过配置注入的设置中获取方向。

看来您正在寻找构建某种配置编辑器?当 Visual Studio 有两个内置时,为什么要这样做?编辑窗口和各种配置编辑器、ASP.NET 配置编辑器、Microsoft 服务配置编辑器等。

根据我的经验,开发环境与测试环境与生产环境中的 web 或 app.config 之间的差异通常仅在一些设置上有所不同,例如连接字符串、AppSettings、消息队列地址、服务端点、Log4Net 设置等.

好的,设置不少,但在每个配置块中,通常只有一两个属性因环境而异。例外情况是 IOC 配置,例如 Spring.NET、CastleWinsor 或 Unity。但即便如此,这些在不同环境中通常是完全相同的。

我会鼓励你离开并考虑一下。想想你试图解决的实际问题。也许您需要一些数据库驱动的工作流程?我不知道。

我只知道配置不应该由运行时代码驱动。这是部署和构建时的事情。

话虽如此,还有诸如ConfigGen 之类的工具,它使生成特定于环境的配置变得轻而易举。当这真的是你需要的时候检查一下。

于 2011-11-09T15:01:22.640 回答