有没有人有任何经验/试图这样做?
我们的 .NET 应用程序有一些相当复杂的 XML 配置,并且认为如果我们可以使用我们的配置对象层次结构来动态构建 UI,使用反射和来自这些对象的属性的属性/元数据来呈现选项会很好给用户生成配置。
让它变得非常通用会很好,所以我们可以为它提供任何 .NET XML 配置对象(在合理范围内),它会反映它并允许填充它。
有没有人有任何经验/试图这样做?
我们的 .NET 应用程序有一些相当复杂的 XML 配置,并且认为如果我们可以使用我们的配置对象层次结构来动态构建 UI,使用反射和来自这些对象的属性的属性/元数据来呈现选项会很好给用户生成配置。
让它变得非常通用会很好,所以我们可以为它提供任何 .NET XML 配置对象(在合理范围内),它会反映它并允许填充它。
您需要准确考虑 .NET 中的 Config 文件的用途。它们是定义应用程序不同部署之间差异的地方。因此,当您谈论基于编码逻辑动态更改配置时,我认为您可能理解错了方向。您的代码应该从通过配置注入的设置中获取方向。
看来您正在寻找构建某种配置编辑器?当 Visual Studio 有两个内置时,为什么要这样做?编辑窗口和各种配置编辑器、ASP.NET 配置编辑器、Microsoft 服务配置编辑器等。
根据我的经验,开发环境与测试环境与生产环境中的 web 或 app.config 之间的差异通常仅在一些设置上有所不同,例如连接字符串、AppSettings、消息队列地址、服务端点、Log4Net 设置等.
好的,设置不少,但在每个配置块中,通常只有一两个属性因环境而异。例外情况是 IOC 配置,例如 Spring.NET、CastleWinsor 或 Unity。但即便如此,这些在不同环境中通常是完全相同的。
我会鼓励你离开并考虑一下。想想你试图解决的实际问题。也许您需要一些数据库驱动的工作流程?我不知道。
我只知道配置不应该由运行时代码驱动。这是部署和构建时的事情。
话虽如此,还有诸如ConfigGen 之类的工具,它使生成特定于环境的配置变得轻而易举。当这真的是你需要的时候检查一下。