我正在开发一个C#类库,它需要能够从web.config
或app.config
文件中读取设置(取决于DLL是从ASP.NET Web应用程序还是Windows窗体应用程序引用).
我发现了
ConfigurationSettings.AppSettings.Get("MySetting")
Run Code Online (Sandbox Code Playgroud)
但是该代码已被Microsoft标记为已弃用.
我读过我应该使用的:
ConfigurationManager.AppSettings["MySetting"]
Run Code Online (Sandbox Code Playgroud)
但是,System.Configuration.ConfigurationManager
该类似乎不能从C#类库项目中获得.
有谁知道最好的方法是什么?
我想要实现的非常简单:我有一个Windows窗体(.NET 3.5)应用程序,它使用一个路径来读取信息.用户可以使用我提供的选项表单修改此路径.
现在,我想将路径值保存到文件中供以后使用.这将是保存到此文件的众多设置之一.该文件将直接位于应用程序文件夹中.
我理解有三种选择:
我读到.NET配置文件没有预见到将值保存回来.至于注册表,我想尽可能远离它.
这是否意味着我应该使用自定义XML文件来保存配置设置?如果是这样,我希望看到代码示例(C#).
我已经看过关于这个问题的其他讨论,但我仍然不清楚.
我试图使用代码从下面的app.config文件中读取StartingMonthColumn和CategoryHeadingColumn
ConfigurationSettings.AppSettings["StartingMonthColumn"]
Run Code Online (Sandbox Code Playgroud)
但它返回null,ConfigurationSettings.AppSettings.Count也返回零
请帮我在我的Windows应用程序中阅读此内容
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="CTARepository.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<CTARepository.Properties.Settings>
<setting name="Setting" serializeAs="String">
<value />
</setting>
</CTARepository.Properties.Settings>
</userSettings>
<appSettings>
<add key="StartingMonthColumn" value="7"/>
<add key="CategoryHeadingColumn" value="1"/>
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud) 我有两个关于在web.config中保存设置的方法的问题.
Appsettings:查看web.config
<appSettings>
<add key="key1" value="value1"/>
<add key="key2" value="value2"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)
代码隐藏中的用法:
ConfigurationManager.AppSettings["key1"];
Run Code Online (Sandbox Code Playgroud)
ApplicationSettings/Properties(使用项目中的'properties'选项卡自动生成)
查看web.config
<applicationSettings>
<Projectname.Properties.Settings>
<setting name="TestEnvironment" serializeAs="String">
<value>True</value>
</setting>
</Projectname.Properties.Settings>
</applicationSettings>
Run Code Online (Sandbox Code Playgroud)
代码隐藏中的用法:
Properties.Settings.Default.TestEnvironment
Run Code Online (Sandbox Code Playgroud)
那么,web.config中设置的这两种存储可能性有什么区别?
据我所知,appSettings的一个缺点是你自己修改了web.config并且appSettings不是强类型的,就像applicationSettings一样.
两者都可以在Web部署项目中替换.
就我而言,appSettings没有用处.我在这里错过了什么吗?哪个是历史悠久的旧版?
当我应该使用configurationManager.AppSettings或visual studio生成的强类型设置时,应该指示什么?在大多数情况下,强类型的似乎更合适,但我认为可以使用ConfigurationManager方法动态地将设置添加到已部署的应用程序,但是在是否有任何指导条件下,每种情况都可以使用?
有人可以向我解释App.Config文件中AppSettings和ApplicationSettings部分之间的区别.为什么有两个不同的部分显然做同样的事情?
我正在寻找一种方法来存储可以使用应用程序设置在运行时写入的应用程序或机器级别设置.用户设置允许读/写,但应用程序设置不允许.我一直在使用用户设置在运行时保存这样的设置,但由于以下原因,这已被证明是不切实际的:
我们公司的机器仅供一个用户使用,因此通常不需要用户特定的设置.
否则我真的很喜欢使用应用程序设置,并希望尽可能继续使用它们.如果设置可以与EXE位于同一个文件夹中(比如曾经做过的好的'ini文件),那将是理想的选择.
注意:这是一个WPF应用程序,而不是ASP.net Web应用程序,所以没有web.config.
是否可以从加载的app.config文件的applicationSettings部分访问值?
我找到了一个示例如何检索appSettings,但我无法通过这种方式找到如何访问applicationSettings.
.net configuration app-config application-settings visual-studio
c# ×5
.net ×4
appsettings ×4
app-config ×2
asp.net ×1
properties ×1
settings ×1
winforms ×1
wpf ×1
xml ×1