zoukankan      html  css  js  c++  java
  • web.config配置文件使用总结

      我们在开发web系统的时候,使用web.config进行配置是司空见惯的,那么web.confg到底是什么呢?什么时候使用web.config呢?有几种使用web.config方式呢? 如果不太明白的话,那这篇文章就带领大家脑补下。

      》》首先回答第一个问题,web.config是什么?

      是一个XML文本文件。用来存储ASP.NETWEB的配置信息。修改不需要重启服务器就可以生效。

     》》 然后第二个问题,什么时候使用web.config?

      网站中很多不确定的可能随时更改的数据都可以写到配置文件里面。

     》》有几种使用web.config的方式呢?

     下面就介绍几种常见的:

    ~ connectionStrings配置(这个一般用来配置数据库连接)

      <connectionStrings>
        <add name="Default" connectionString="Server=.; Database=Inferno;User ID=sa; Password=pwd123;MultipleActiveResultSets=true" providerName="System.Data.SqlClient" />
      </connectionStrings>

    获取:

      string dbStr=ConfigurationManager.ConnectionStrings["Default"].ConnectionString;

    ~appSettings配置(这个一般用来配置不确定的或者需要用户配置的内容)

     <appSettings>
        <add key="webpages:Version" value="3.0.0.0" />
        <add key="webpages:Enabled" value="false" />
        <add key="ClientValidationEnabled" value="true" />
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
      </appSettings>

    获取

    string clientValidationEnabled= ConfigurationManager.AppSettings["ClientValidationEnabled"].ToString();

    ~自定义配置(这个一般用户批量配置某些内容)

    例如,我下面定义了一个jieDian 键值对配置和一个 fileupload 上传文件集合配置

    其中,上面的UploadConditionHandler我对应的是一个类:(这个类需要继承IConfigurationSectionHandler并实现Create方法)

    namespace TestProject
    {
        public class UploadConditionHandler : IConfigurationSectionHandler
        {
            public UploadConditionHandler() { }
            public static NameValueCollection ossrules = ConfigurationManager.GetSection("testSectionGroup/jieDian") as NameValueCollection;
    
            public static Dictionary<string, UploadRequiredParameters> ScreensDictionary = ConfigurationManager.GetSection("testSectionGroup/fileupload") as Dictionary<string, UploadRequiredParameters>;
            public object Create(object parent, object configContext, XmlNode section)
            {
                Dictionary<string, UploadRequiredParameters> screens = new Dictionary<string, UploadRequiredParameters>();
    
                try
                {
                    string name = string.Empty;
                    string path_rule = string.Empty;
                    string disk = string.Empty;
                    string receive_server = string.Empty;
                    string ext_array = string.Empty;
                    string max_memory_size = string.Empty;
                    string enum_bucket_name = string.Empty;
                    string max_pixel_height = string.Empty;
                    string max_pixel_width = string.Empty;
                    foreach (XmlNode childNode in section.ChildNodes)
                    {
                        if (childNode.NodeType != XmlNodeType.Element || childNode.Name != "upload")
                            continue;
    
                        if (childNode.Attributes["name"] != null)
                        {
                            name = childNode.Attributes["name"].Value;
                            if (childNode.Attributes["path_rule"] != null)
                            {
                                path_rule = childNode.Attributes["path_rule"].Value;
                            }
                            if (childNode.Attributes["disk"] != null)
                            {
                                disk = childNode.Attributes["disk"].Value;
                            }
                            if (childNode.Attributes["receive_server"] != null)
                            {
                                receive_server = childNode.Attributes["receive_server"].Value;
                            }
                            if (childNode.Attributes["ext_array"] != null)
                            {
                                ext_array = childNode.Attributes["ext_array"].Value;
                            }
                            if (childNode.Attributes["max_memory_size"] != null)
                            {
                                max_memory_size = childNode.Attributes["max_memory_size"].Value;
                            }
                            if (childNode.Attributes["enum_bucket_name"] != null)
                            {
                                enum_bucket_name = childNode.Attributes["enum_bucket_name"].Value;
                            }
                            if (childNode.Attributes["max_height"] != null)
                            {
                                max_pixel_height = childNode.Attributes["max_height"].Value;
                            }
                            if (childNode.Attributes["max_width"] != null)
                            {
                                max_pixel_width = childNode.Attributes["max_width"].Value;
                            }
                            UploadRequiredParameters upload = new UploadRequiredParameters();
    
                            upload.PathRule = path_rule;
                            upload.Disk = disk;
                            upload.ReceiveServer = receive_server;
                            upload.ExtArray = ext_array;
    
                            int maxMemorySize = 0;
                            if (int.TryParse(max_memory_size, out maxMemorySize))
                            {
                                upload.MaxMemorySize = maxMemorySize;
                            }
                            upload.EnumBucketName = enum_bucket_name;
                            int maxPixelHeight = 0;
                            if (int.TryParse(max_pixel_height, out maxPixelHeight))
                            {
                                upload.MaxPixelHeight = maxPixelHeight;
                            }
                            int maxPixelWidth = 0;
                            if (int.TryParse(max_pixel_width, out maxPixelWidth))
                            {
                                upload.MaxPixelWidth = maxPixelWidth;
                            }
    
                            screens.Add(name, upload);
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                return screens;
            }
        }
    }
    View Code

    好了,上面的步骤完成后,就可以在其它地方调用了:           

    string jieDian1=UploadConditionHandler.ossrules["JieDian1"];
    UploadRequiredParameters res = UploadConditionHandler.ScreensDictionary["UploadRules_Mostly"];

    目前就先介绍这么多啦,有什么疑问的或者需要了解的欢迎留言~  

  • 相关阅读:
    @RequestParam方式传入list
    编写优美代码的七条规范(Python版)
    汇编程序设计入门
    CSP-S2020解题报告(待完成!)
    [USACO18JAN]MooTube
    DP优化
    AFO记
    考前总结
    清北学堂周末刷题班第五场
    清北学堂考前综合刷题班第四场
  • 原文地址:https://www.cnblogs.com/shuai7boy/p/9758253.html
Copyright © 2011-2022 走看看