同一 GAC 编辑程序集的多个版本,如何处理 machine.config 中的自定义配置部分

发布于 2025-01-08 02:51:56 字数 535 浏览 0 评论 0原文

我有一个具有两个不同版本(v1 和 v2)的程序集。这些程序集的两个版本都有一个自定义的 ConfigurationSection。我们在 machine.config 级别设置此配置部分的部分内容。一切都按照您对 GAC 中单个程序集的预期进行。

我现在将程序集的 v2 添加到 GAC。
我将新的配置部分添加到 machine.config 并将其指向 v2。一切都很好,因为它们都指向相同的配置部分并读取相同的部分数据。

假设配置值之一是端口号,我需要 v1 上的端口号与 v2 上的端口号不同。我该如何处理这种情况?有没有办法为配置节添加别名以指向 machine.config 文件中的不同元素?

我考虑过更改配置节上的 name 属性以包含版本,然后在程序集中我可以加载它动态使用 ConfigurationManager.GetSection("MyConfigSection" + MyCurVersionDeterminedSomehow) 但这看起来像是一个黑客。

我还可以拥有配置节类的多个版本,但这似乎是一条极其错误的路径。

I have an assembly with two different versions (v1 and v2). Both versions of these assemblies have a custom ConfigurationSection. We set portions of this configuration section at the machine.config level. Everything works as you would expect for a single assembly in the GAC.

I now add v2 of the assembly to the GAC.
I add the new configuration section to the machine.config and point it to v2. All is well as they are both pointing to the same configuration section and reading the same section data.

Lets say one of the configuration values is a port number and I need the to be different on v1 than it is on v2. How do I handle this situation? Is there a way to alias the configuration sections to point to a different element in the machine.config file?

I thought about changing the name attribute on the config section to contain the version and then in the assembly I could load it dynamically using ConfigurationManager.GetSection("MyConfigSection" + MyCurVersionDeterminedSomehow) but this seems like a hack.

I could also have multiple versions of the configuration section class but this seemed to be an extremely wrong path.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文