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

C# C根据使用者更改DLL app.config,c#,dll,app-config,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将在其他几个项目中使用

我在类库项目中有一个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-address,契约是相同的。如何将应用程序中的服务地址注入DLL

编辑2:

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


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

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

使用应用程序的.config文件-缺点:编写应用程序的人需要知道您的配置值并添加它们。大多数情况下,他/她会发现这些设置,因为他们会因缺少值而获得异常。 如果您的所有应用程序都使用同一个DB,那么将值保存到DB或其他web服务这是一个好主意。当您的应用程序数量非常有限时,它可以很好地工作。我将其用于生产/测试环境的不同值 制作每一个需要这些值的类,以便将它们放入承包商中。优点:无需任何提示,应用程序编程人员将了解数据。这是一个干净的界面。如果是客户特定的项目,我会使用此选项。缺点:应用程序编程人员需要做大量工作
类库没有自己的配置文件。您可以添加一个或一些工具,这些工具可能会自动添加一个,但在运行时未使用。唯一受尊重的配置文件是主应用程序的配置文件。您不能将这些设置保存在数据库中吗?并在运行时从消费应用程序中选择正确的设置?@RubbleFord-不幸的是,由于各种限制,DB不是一个选项。那么这里的最佳实践是什么呢?请看更新。谢谢你的回答。如果选择第1个选项,如何从DLL代码中读取应用程序的.config?如果您有多个应用程序实例,并且每个Web服务的代码都存在一次,只需将您想要的值添加到配置文件中,然后像这样读取:System.Configuration.ConfigurationManager.AppSettings[SomeKey]你是说我使用DLL将值添加到应用程序的配置中,并在DLL的代码中通过System.Configuration.ConfigurationManager.AppSettings[SomeKey]读取它们?你说我插入值是什么意思?每个应用程序都有自己的配置文件使用DLL的所有应用程序都共享DLL配置中找到的相同绑定配置。但是,每个应用程序中端点的地址是不同的。我希望地址是可配置的,所以我把它放在应用程序的配置中。现在,我需要将应用程序中的地址注入到它使用的DLL中。