.net 从Web.config读取变量

niwlg2el  于 2023-08-08  发布在  .NET
关注(0)|答案(6)|浏览(108)

如何添加和读取web.config文件中的值?

wyyhbhjk

wyyhbhjk1#

给定以下web.config:

<appSettings>
         <add key="ClientId" value="127605460617602"/>
         <add key="RedirectUrl" value="http://localhost:49548/Redirect.aspx"/>
    </appSettings>

字符串
示例用法:

using System.Configuration;

string clientId = ConfigurationManager.AppSettings["ClientId"];
string redirectUrl = ConfigurationManager.AppSettings["RedirectUrl"];

h6my8fg2

h6my8fg22#

我建议你不要修改你的web.config,因为每次修改的时候,它都会重新启动你的应用程序。
但是,您可以使用System.Configuration.ConfigurationManager.AppSettings读取web.config

g6ll5ycj

g6ll5ycj3#

如果你想了解基本知识,你可以通过以下方式访问密钥:

string myKey = System.Configuration.ConfigurationManager.AppSettings["myKey"].ToString();
string imageFolder = System.Configuration.ConfigurationManager.AppSettings["imageFolder"].ToString();

字符串
为了访问我的web配置键,我总是在我的应用程序中创建一个静态类。这意味着我可以在任何我需要的地方访问它们,并且我不会在我的应用程序中使用字符串(如果它在Web配置中发生变化,我必须通过所有的事件来更改它们)。下面是一个示例:

using System.Configuration;

public static class AppSettingsGet
{    
    public static string myKey
    {
        get { return ConfigurationManager.AppSettings["myKey"].ToString(); }
    }

    public static string imageFolder
    {
        get { return ConfigurationManager.AppSettings["imageFolder"].ToString(); }
    }

    // I also get my connection string from here
    public static string ConnectionString
    {
       get { return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; }
    }
}

ycggw6v2

ycggw6v24#

假设密钥包含在<appSettings>节点中:

ConfigurationSettings.AppSettings["theKey"];

字符串
至于“写作”--简单地说,不要。
web.config不是为这个设计的,如果你要不断地改变一个值,把它放在一个静态帮助类中。

im9ewurl

im9ewurl5#

Ryan法利在他的博客中有一篇关于这方面的文章,包括为什么不写回web.config文件的所有原因:Writing to Your .NET Application's Config File

mlmc2os5

mlmc2os56#

我是siteConfiguration类,用于以这种方式调用我所有的appSetting。我分享它,如果它会帮助任何人。
在“web.config”中添加以下代码

<configuration>
   <configSections>
     <!-- some stuff omitted here -->
   </configSections>
   <appSettings>
      <add key="appKeyString" value="abc" />
      <add key="appKeyInt" value="123" />  
   </appSettings>
</configuration>

字符串
现在您可以定义一个类来获取所有的appSetting值。像这样

using System; 
using System.Configuration;
namespace Configuration
{
   public static class SiteConfigurationReader
   {
      public static String appKeyString  //for string type value
      {
         get
         {
            return ConfigurationManager.AppSettings.Get("appKeyString");
         }
      }

      public static Int32 appKeyInt  //to get integer value
      {
         get
         {
            return ConfigurationManager.AppSettings.Get("appKeyInt").ToInteger(true);
         }
      }

      // you can also get the app setting by passing the key
      public static Int32 GetAppSettingsInteger(string keyName)
      {
          try
          {
            return Convert.ToInt32(ConfigurationManager.AppSettings.Get(keyName));
        }
        catch
        {
            return 0;
        }
      }
   }
}


现在添加上一个类的引用,并访问像bellow这样的键调用

string appKeyStringVal= SiteConfigurationReader.appKeyString;
int appKeyIntVal= SiteConfigurationReader.appKeyInt;
int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");

相关问题