C#根据使用者更改DLL app.config

时间:2013-07-01 06:35:08

标签: c# dll app-config

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

此项目创建的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中的大多数代码都在使用包含它的.config的ASMX Web服务。每个将使用DLL的应用程序都有自己的WS地址(合同相同)。如何将应用程序的服务地址注入DLL?

编辑#2:

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

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

1 个答案:

答案 0 :(得分:2)

只有应用程序有.config文件,因此在类库中使用.config文件是没用的。 这意味着价值观应来自其他地方 我能想到的选择是:

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