扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
web.config、序列化、反射、特性和强类型之间有些什么关系
第一搞不懂的就是web.config是个什么东西,知道它能配置,但是,为什么在它里面写一下xml就可以控制程序了呢?猜测是不是和xml的序列化有关?msdn上说连.cs文件都是被XmlSerilize成.dll文件的,难道.net里编译和序列化还有关系?可以自定义配置,配置过程就包括两部分:在xml里要写一段,还要自己声明一些继承自Configuration的类,类里面的属性还要加上特性……xml和类有关系么?应该有,是吧?web.config里的东西(每个节点)实际上是一些类,节点的属性就是类的属性?这里面还要牵扯到反射吧?所谓的“映射”,经常看到的一个词,究竟是什么东西?还有就是强类型,比如DataSet,他是如何做到“强”类型的呢,他从数据库取出来的,不过是一些字段值而已,难道也是用的反射?
Web.config 文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。XmlSerilize 是序列化所需要用到的类,应用程序在底层传输数据都用的是XML传输的 通过序列化可以将对象数据集数组等序列化为 XML。反射Reflection可以将编译好的dll文件里面的方法,属性等显示出来方便你在引用的时候调用方法。
通过反射可以得到类的属性、类型、值等信息:
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);
}
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者