同一 GAC 编辑程序集的多个版本,如何处理 machine.config 中的自定义配置部分
我有一个具有两个不同版本(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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论