相关疑难解决方法(0)

从.net中的app.config或web.config读取设置

我正在开发一个C#类库,它需要能够从web.configapp.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#类库项目中获得.

有谁知道最好的方法是什么?

.net c# configuration appsettings

764
推荐指数
15
解决办法
91万
查看次数

AppSettings与applicationSettings的优缺点(.NET app.config/Web.config)

在开发.NET Windows窗体应用程序时,我们可以在这些App.config标记之间进行选择以存储配置值.哪一个更好?

<configuration>

  <!-- Choice 1 -->
  <appSettings>
    <add key="RequestTimeoutInMilliseconds" value="10000"/>
  </appSettings>

  <!-- Choice 2 -->
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c5612342342" >
        <section name="Project1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c5612342342" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <applicationSettings>
    <Project1.Properties.Settings>
      <setting name="TABLEA" serializeAs="String">
        <value>TABLEA</value>
      </setting>
    </Project1.Properties.Settings>
  </applicationSettings>

</configuration>
Run Code Online (Sandbox Code Playgroud)

.net app-config web-config

160
推荐指数
5
解决办法
9万
查看次数

app.config文件和XYZ.settings文件有什么区别?

我实际上处于.NET相关的学习阶段,我正在探索如何保存应用程序.我最后编写了自己的类,将设置保存在XML文件中,然后我发现.NET本身支持保存应用程序设置.

但我找到了两种方法.当我在Visual Studio 2008中打开添加新项目对话框时,它提供了创建设置文件(.settings)或配置文件(.config)的选项.两者之间的区别是什么,应该在什么情况下使用它们?

.net settings configuration appsettings

71
推荐指数
2
解决办法
9635
查看次数

当通过COM调用时,我可以使用/访问.net代码中的app.config吗?

我有一组现有的.net库,我希望从Excel VBA调用(该部分工作正常).这些库依赖于app.config中的设置.我知道我可以在excel.exe.config文件中输入这些设置(放在与excel.exe相同的目录中),但这对我来说似乎不是一个非常易于管理的解决方案,因为我可以看到导致冲突,如果不止一个应用程序想要这样做.

我的问题很简单:COM暴露的dll是否有任何方式引用它们各自的配置文件?

示例app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="test" value="Hello world!" />
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

示例c#:

namespace ExcelVbaFacingCode
{
    public class SimpleAppSettingReader
    {
        public string GetValue(string key)
        {
            return ConfigurationManager.AppSettings[key];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

样本VBA:

Public Sub Test()
    Dim Test As New SimpleAppSettingReader
    Dim sampleValue As String
    sampleValue = Test.GetValue("test")
    MsgBox "Value: '" + sampleValue + "'", vbOKOnly
End Sub
Run Code Online (Sandbox Code Playgroud)

.net com vba app-config

7
推荐指数
1
解决办法
4191
查看次数

Mono没有从我的app.config读取值?

我有一个app.configVisual Studio 2010创建的.NET 4.0控制台应用程序的标准,在项目设置选项卡中添加设置,如MSDN中所述:应用程序设置.

如果我MyAsseblyName.exe.config在同一目录中更新结果文件中的设置值,那么运行我在代码中看到的exe,方法是:

Properties.Settings.Default.MySetting;
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用上面的行在Ubuntu 14.04上运行Mono 3.2.8(使用相同的构建和相同文件),则会在项目"设置"选项卡上指定默认值,而不是MyAsseblyName.exe.config文件中的更新值.

我需要做什么来单声道使用像app这样的app.config,如果它们在那里,那么从文件中读取值?

解决方法

对于遇到此问题的其他人,我可以通过将app.config中的设置移动到项目设计人员创建或创建的old-school <appSettings>元素来解决此问题.然后你可以使用:<userSettings><applicationSettings>

var myValue = ConfigurationManager.AppSettings["MyKey"];
Run Code Online (Sandbox Code Playgroud)

请参阅http://msdn.microsoft.com/en-AU/library/system.configuration.configurationmanager.appsettings(v=vs.100).aspx

c# mono app-config

5
推荐指数
0
解决办法
2600
查看次数

如何从类库中的'WPF'项目App.config文件中读取值

我有一个WpfApplication项目(Visual Studio 2008),其中通过在Settings.settings文件中输入'Name'和'Value'对生成app.config(因此生成'applicationSettings'元素而不是'appSettings'元素).

我在同一个Visual Studio解决方案中添加了一个class1类库项目.

**我已经使用"添加现有项目然后添加为链接"将WpfApplication app.config文件添加到class1项目.**因为发现这是不必要的(即字符串a = ConfigurationManager.AppSettings.Get("key1") ;下面没有这个工作)

我想从class1中读取app.config中的值,并探讨了以下内容:

string s1 = Settings.Default.appsetting1; 
Run Code Online (Sandbox Code Playgroud)

但我不想从Class 1项目引用WpfApplication10项目,因此无法获得对Settings类的引用.因此,此语法仅适用于WPF项目.

string a = ConfigurationManager.AppSettings.Get("key1").ToString(); 
Run Code Online (Sandbox Code Playgroud)

这确实有效,但前提是我将以下内容添加到app.config:

<appSettings>
   <add key="key1" value="1"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)

是否有其他方法可以实现我想要的更好的方法(例如提供类型安全性或能够读取Settings类属性?

app-config

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

.net ×4

app-config ×4

appsettings ×2

c# ×2

configuration ×2

com ×1

mono ×1

settings ×1

vba ×1

web-config ×1