如何解决NetCore应用程序配置是否可以使用Properties.Settings覆盖类库中的值?
在NetFramework中,您可以具有一个包含Settings.Setting文件的类库,该文件最终将像下面这样提供一个app.config文件:
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup,System,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089">
<section name="Namespace.Lib.Properties.Settings" type="System.Configuration.ClientSettingsSection,PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>
</configSections>
<applicationSettings>
<Namespace.Lib.Properties.Settings>
<setting name="MyVariable" serializeAs="String">
<value>Default Value</value>
</setting>
</NameSpace.Lib.Properties.Settings>
</applicationSettings>
在类库代码中,您将使用Properties.Settings.Default.MyVariable
在那之后,在主应用程序中,您可能还会有一个app.config(或web.config),其部分与上面的部分完全相同,但是变量的值不同,因此它将覆盖默认值,因此库将使用您的应用程序所需的内容。
-
现在在NetCore中,我知道新方法正在使用appsettings.json
文件,并且主机Startup接收了一个IConfiguration类,可以在其中读取设置,提要模型,甚至注入服务。但是要使其正常工作,您的类库需要以一种可以接受新配置格式或模型的方式进行编码。
我也知道引入System.Configuration.ConfigurationManager
NuGet软件包是为了保持支持旧的配置文件格式。并在类库中使用它,允许它像以前一样使用其app.config值,而不会出现任何错误。
-
我有一个类库,在其代码中使用Properties.Settings.Default
,我不想重新编码以接受IConfiguration(以保持与仍在使用它的其他NetFramework项目的兼容性)。我将类库移植到netstandard2.0
,并添加了配置NuGet包并进行了构建。
我的问题是,即使从我的NetCore应用程序中添加NuGet程序包,并手动添加app.config(或web.config)并像以前一样覆盖这些部分,它似乎也不会传播到类库或完全可以使用。当类库访问Properties.Settings.Default.MyVariable
时,它仍读取其自身的默认值,而不是我尝试从应用程序覆盖的默认值。为什么呢?
还有可能吗?
解决方法
问题只是文件名。
使用“ Web.config”允许IIS读取服务器的
以前,NetFramework的ASP.NET会自动将web.config复制到应用程序名称,现在好像没有。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。