Web.config 文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置  更多。XmlSerilize  是序列化所需要用到的类,应用程序在底层传输数据都用的是XML传输的 通过序列化可以将对象数据集数组等序列化为 XML反射Reflection  可以将编译好的dll文件里面的方法 属性等显示出来方便你在引用的时候调用方法

解决方案 »

  1.   

    我只知道Web.config=.=
    刚接触到
      

  2.   

    通过反射可以得到类的属性、类型、值等信息:
    using System.Reflection;
    private void Form1_Load(object sender, EventArgs e)
            {
                UserModel m = Test<UserModel>();
                m.ID = 123;
                m.Name = "gcy";
                Type t = m.GetType();
                PropertyInfo[] pts = t.GetProperties();
                for (int i = 0; i < pts.Length; i++)
                {
                    PropertyInfo pi = pts[i];
                    MessageBox.Show(pi.Name);
                    MessageBox.Show(pi.PropertyType.ToString());
                    MessageBox.Show(pi.GetValue(m, null).ToString());
                }
            }        private t Test<t>()
            {
                t obj = Activator.CreateInstance<t>();
                return obj;
                //ConstructorInfo ct = t.GetConstructor(System.Type.EmptyTypes);
                //return ct.Invoke(null);
            }
      

  3.   

    如何由XSD自动生成XML和实体类
    采用反射技术和XML的通用实体类
      

  4.   

    web.config就是配置文件,.net规定了就是用这个文件做为Web程序的配置,只不过这个文件的格式是 xml 的,asp.net 自身的配置都是读取这个文件,所以这个文件内容变化之后,程序也会发生变化。这个文件如果做成其他格式,例如文本、ini之类的都是可以的,程序的行为和 xml 没有任何关系。
      

  5.   

    举个简单的例子吧。假设我们用工厂模式写这么一段东西:interface DBOperation
    {
        //...
    };class AccessOp : DBOperation
    {
        //...
    };class SqlServerOp : DBOperation
    {
        //...
    }使用的时候DBOperation db = new AccessOp();
    或者
    DBOperation db = new SqlServerOp();如果配置文件里面能够读到用于区分这两者的字符串:
    string dbType = ...; // 读配置文件那么就可以根据 dbType 来选择上面的类了
    撇开 .Net 的反射,可以
    if (dbType == "SqlServerOp")
    {
        DBOperation db = new SqlServerOp();
    }
    else if (dbType == "AccessOp")
    {
        DBOperation db = new AccessOp();
    }
    else
    {
        //Error
    }
    配置文件中的内容就达到了“控制程序”的目的。进而如果把反射用上去,上面那段程序就可以从 10 来行缩为一行,类似:DBOperation db = Activator.CreateInstance(Type.GetType(dbType));
    其实个人觉得 web.config 充其量也只是个配置文件而已,从实质上来说和以往的 ini、注册表项等都没什么两样
    但是因为配置项比较多,反射机制也应用得淋漓尽致,所以显得复杂了。对于这种复杂的配置文件,个人的观点是不看好。但是我们没有不看好的权利。
      

  6.   

    1.web.cofig是配置文件。配置文件的意思不用我多说,就是说系统运行需要的元数据,并不直接硬编码里,而是写在一个文本里,这样的好处是显而易见滴!你可以动态的配置元数据,而不用重新编译就能更改程序运行的效果。
    2.配置文件不一定是web.config,他可以是任何类型的文件,比如xml,txt,ini,cvs,dat,mdb只要你能很方便的读写和修改他们
    3.配置文件可以是任何类型,任何格式的文件,但是你的程序要能很方便的访问和改写里面的元数据,这就要求你有合理的数据存储和查询结构
    如果元数据是:
        中国----》湖北|||武汉:武昌 
    这样的格式,你认为你能很容易的访问他们吗?所以程序员们为了访问的方便就自己设计了很多容易读取的格式:比如早期的 以固定字符做分割的cvs文件,后来的ini文件,现在的xml文件4.为了能更容易的访问和读写配置文件,除了需要程序员设计出合理的配置文件格式以外,聪明的,睿智的,偷懒的程序员们又自己设计了各种各样的能在自己的代码里方便读取的代码类,但是偷懒的程序员觉得,为啥不能有一些通用的,一劳永逸的方法呢?于是他们使用特性,把需要配置的东西标明出来,然后使用序列化,让序列化代码自己去生成配置文件,同时有可以反序列化成为原来的对象。这样不是方便了很多---------(在这里让我向那些充满创造性并且会偷懒的前辈们致敬)
      

  7.   

    什么叫充其量?web.config本来就只是个配置文件...和ini、注册表最大的不同是标准化...首先比起ini、注册表来配置文件一点也不复杂...其次如果你觉得复杂就不看好,你去看看Java、Unix/Linux的配置文件...ps:推荐的标准到底是什么?
      

  8.   


    "private t Test <t>() " 前面 的 t 是 啥意思 ?不解 。。是不是 class 写 错 了 。。正在 研究 。net 框架 ,序列化  跟楼主 同样 求 多 解。。
      

  9.   

    Web.config 文件是一个xml文本文件,它用来储存 asp.NET Web 应用程序的配置信息(如最常用的设置asp.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果想修改子目录的配置设置,可以在该子目录下新建一个Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。
    序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,就使得数据能够被轻松地存储和传输。
    序列化简单点来理解就是把内存的东西写到硬盘中,当然也可以写到内存中(这个内容我会在后面写一个例子).而反序列化就是从硬盘中把信息读到内存中.就这么简单,呵呵。
    序列化和反序列化用于将一个对象保存到文件,从文件读取
    http://www.cnblogs.com/lsmsky/category/120048.html
    http://www.cnblogs.com/barebird/archive/2008/07/24/1250916.html
      

  10.   

    昨天一个帖子里看到一句话,大意是:
    如果一个软件出现过于复杂的配置文件以至于这个配置文件怎么写都需要人去学习,那就说明它的设计有问题(过度灵活)有些认同这句话。不过 web.config 的配置文件为了应付所有人写出的 ASP.Net 网站的,也就不可能简单了
      

  11.   

    Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过VB.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的 
      Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。 
      在运行时对Web.config文件的修改不需要重启服务就可以生效(注:<processModel> 节例外)。当然Web.config文件是可以扩展的。你可以自定义新配置参数并编写配置节处理程序以对它们进行处理。
      

  12.   

    asp.net好象很少用到这些高级货.. 不过我也很想掌握..当然,除了xml
      

  13.   

    谁能提供Web.config可配置的详细列表就更好了。
      

  14.   

    web.cofig是配置文件...
    别的不清楚,,等大牛来讲明白...
      

  15.   

    建议楼主看看web.config中的<configSections>节,以及在程序中如何控制自定义节
      

  16.   

    建议楼主看看web.config中的 <configSections>节,以及在程序中如何控制自定义节
      

  17.   

    Web.config 这个配置文件是很重要的它可以配置数据源字段!
    配置身份验证!
    权限等等!
      我了解的就这么多!
    它真的很重要的!
      

  18.   

    首页|空间|新闻|论坛|群组|BLOG|文档|下载|读书|网摘|视频|开源|书店|程序员|人才|项目交易|培训  
    论坛首页 新手指南 社区地图 
    专题回顾More社区焦点
    如何制作统计图泛型类和动态加载树形 实现SQL中的触发器pictureBox图片事件 checkedListBox反选
    系统级优化-为你省到底分享省钱的方法 经验总结—A Tip未来新技术发布会  AMT配置模式解析
    令人喷饭的美国法律+笑话  实现一对话框里放对话框   我对进程与函数的理解bi里ssis数据抽取的问题  最快操作数据insert update delete   程序人生一年,迷茫中我的软件工程师老婆  去哪打工比较好   SQL语句时间比较实现字段筛选的存储过程  大学时女同学说过的雷人语录  vc窗口怎么分成8分屏及转换
    RSS版主推荐-技术区
    mdejtod[gyk120推荐] 如何通过进程获取文件真实路径!!!!  [Windows]
    real518[yinyuan1987推荐] struts+hibernate的问题 [Web]
    MSTOP[顾湘云推荐] [原] 如何建立SQLSERVER的内存数据库. [疑难问题]
    supergreenbean[Modest推荐] 系列专题:【附源码】Windows Shell接... [基础类]
      

  19.   

    建议LZ先看一下设计模式,然后再回头看这个问题就容易多了,.NET很多地方都用到了设计模式。
      

  20.   

    配置文件是微软用来方便做网站而特地做的,可以通过类来访问他们的属性,相当于预定义了的XML 个人是这么想的呵呵
      

  21.   

    配置文件可用来存放一些多次用到的常量数据,如连接串:
    <appSettings>
    <add key="connStr1" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="/>
    <add key="connStr2" value="App_Data\test.mdb"/>
    </appSettings>
    这个配置数据库连接串
    使用示例:
       public class DBConn
        {
            protected OleDbConnection _conn;        public DBConn(System.Web.UI.Page page)
            {
                string path = page.Server.MapPath(ConfigurationSettings.AppSettings["connStr2"]);
                string connectString = ConfigurationSettings.AppSettings["connStr1"];
                connectString += path;
                _conn = new OleDbConnection(connectString);
                _conn.Open();
            }
    ........ <system.web>
        <compilation debug="true" />
    这个配置网站为DEBUG模式 <authentication mode="Windows"/>
    这个配置为WINDWOS认证模式。        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>
    这个配置403,404出错时的传回页面配置网站邮件服务器:
    <mailSettings>
    <smtp from="[email protected]">
    <network host="smpt.gmail.com" userName="" password=""/>
    </smtp>
    诸如此类。都是一些常量参数,因为多次用到这些参数,所以写在配置文件中用起来就方便多了。甚至某些临时数据也可以从程序中写入,让另一网页访问
      

  22.   

    强类型是JAVA和C#的特性,不同类型是不能转换的。C++可以在各种类型中做任意你想转换的转换,所以C++不是强类型的。C++程序转换类型时,程序员应该时时清楚对象的类型是什么,才不会导致编程错误,但是运行速度也高,因为类型检查是程序员的事,软件一般不必做类型检查。
      

  23.   

    XML是.NET的应用标准,强类型保证了类型转换的安全性
      

  24.   

    在网上查到的两篇文章,比较深入:
    http://www.cnblogs.com/sharpedge/archive/2005/12/01/288276.html
    http://www.cnblogs.com/sharpedge/archive/2005/12/04/290537.html
      

  25.   

    还有:
    http://xrinehart.cnblogs.com/archive/2005/12/03/289978.html