1

我有一个包含一些基本逻辑的类库项目。

该项目创建的 DLL 将用于其他几个项目。

我在类库项目中有一个 app.config 文件,其中包含 DLL 使用的几个值。

当每个消费者项目将使用 DLL 时,它必须更改 app.config 中的值

例如,如果我的 DLL 的 app.config 包含 3 个设置:A、B、C,那么:
DLL 的第一个使用者将具有 A="a", B="aa", C="aaa" 。
DLL 的第二个使用者将有 A="t", B="tt", C="ttt" 。
等等...

从设计的角度来看,实现这个场景的最干净的方法是什么?
(在我看来 app.config 应该驻留在使用 DLL 的项目中)

感谢您的关注!:)

编辑:

我在 DLL 中的大部分代码都在使用 ASMX Web 服务,其中包括它的 .config 。每个将使用 DLL 的应用程序都有自己的 WS 地址(合同相同)。如何将应用程序中的服务地址注入 DLL?

编辑#2:

现在我有 2 个配置文件:
1. 在类库项目中 - 包含 WCF 客户端配置。
2. 在使用 DLL 的应用程序中 - 包含带有 DLL 值的配置。

如何将应用程序配置中的值注入 DLL 的配置(例如端点的地址)?

4

1 回答 1

2

只有应用程序有一个 .config 文件,所以在你的类库中有一个 .config 文件是没有用的。这意味着这些值应该来自其他地方我能想到的选项是:

  1. 使用应用程序的 .config 文件 -缺点:编写应用程序的人需要了解您的配置值并添加它们。大多数时候,他/她会在获得缺失值异常时发现这些设置。
  2. 如果您的所有应用程序都使用同一个数据库,则将值保存到数据库(或其他一些 Web 服务)中,这可能是一个好主意。当您的应用程序数量非常有限时,效果很好。我将它用于生产/测试环境的不同值
  3. 使每个需要这些值的类都可以在承包商中获得它们。优点:不需要提示,应用程序程序员会知道数据。这是一个干净的界面。如果它是客户特定的项目,我会使用此选项。缺点:应用程序程序员的工作量很大
于 2013-07-01T06:50:13.710 回答