在我的项目中,我的功能被用作 Web 应用程序和控制台应用程序(从任务调度程序启动)。为此,我将公共代码放入 Web 应用程序和控制台应用程序都在使用的 DLL 中。这工作正常。
但是,控制台和 Web 应用程序现在有一个几乎相同的 App.config 和 Web.config。是否可以将此配置也放入 DLL 并使其对两个应用程序都可用?
在我的项目中,我的功能被用作 Web 应用程序和控制台应用程序(从任务调度程序启动)。为此,我将公共代码放入 Web 应用程序和控制台应用程序都在使用的 DLL 中。这工作正常。
但是,控制台和 Web 应用程序现在有一个几乎相同的 App.config 和 Web.config。是否可以将此配置也放入 DLL 并使其对两个应用程序都可用?
是的,您可以而且应该将通用配置设置放在 DLL 的配置文件中。只需将 app.config 文件添加到 DLL 项目,并确保从 DLL 中读取配置设置。部署后,您的配置文件需要具有名称“MyDLL.dll.config”(假设您的 DLL 名为“MyDLL.dll”)并且与 DLL 位于同一文件夹中。
我建议您将配置加载移动到 dll 而不是整个配置,然后从不同的应用程序中调用它。这是这样的:
您可以将通用配置放在 Windows 注册表下,随时随地访问
假设您使用的是 .Net,您可以设置一个 .settings 文件来存储您的配置数据 - 其中包含的数据将作为这些配置条目的默认值存储,因此即使没有 app.config 文件,您的应用程序也会运行使用这些默认值。
我不是说这是一件好事...... 8)
因此,如果您构建一个引用您的 DLL 的项目,您将向该项目添加相同的 .settings 文件,并且这些设置将出现在应用程序的 app.config 文件中,并且 DLL 将能够读取这些值。如果这些值不在 app.config 中,则 dll 将使用默认值。
大多数人会认为这是一件坏事,我倾向于同意,但你就是这样。