当前位置: 首页 > news >正文

购物网站开发平台整站优化seo

购物网站开发平台,整站优化seo,番禺网站建设哪里有,php做网站后台语言什么是反射? 反射就是动态发现类型信息的能力。它帮助程序设计人员在程序运行时利用一些信息去动态地使用类型,这些信息在设计时是未知的,这种能力类似于后期绑定。反射还支持的更高级的行为,能在运行时动态创建新类型&#xff0…

什么是反射?

反射就是动态发现类型信息的能力。它帮助程序设计人员在程序运行时利用一些信息去动态地使用类型,这些信息在设计时是未知的,这种能力类似于后期绑定。反射还支持的更高级的行为,能在运行时动态创建新类型,并且对这些新类型的操作进行调用。

听起来可能不太清楚,那反射有什么用呢?

  • 在程序运行时,动态加载需要的程序集,以便操作其元数据。(例如有些IOC容器的实现,就是通过配置对应程序集,在运行时动态加载这些程序集,实现注入)
  • 构造出可重用性的代码,通过反射可以动态的绑定/获取数据(例如orm中将查询结果转成实体,在更新数据时需要获取实体信息构造更新语句)

可能还是不太清楚,那下面就通过一个简单的例子来介绍一下:

自定义一个类和特性:

    [AttributeUsage(AttributeTargets.Method)]public class ApiAttribute : Attribute{public string name;public ApiAttribute(string _name) {name = _name;}}public class lwpoor{private int password;public string name;public lwpoor(){}public lwpoor(string name){this.name = name;}[Api("测试 test")]public string test(string username){return username;}public string test1(string username){return username;}}

使用反射调用自定义类:

static void Main(string[] args)
{Console.WriteLine("Hello, World!");var type = typeof(lwpoor);//获取所有公共属性var pro = type.GetFields();foreach (var prop in pro){Console.WriteLine($"属性名称:{prop.Name} 类型:{prop.FieldType.Name}");}//获取类中标注ApiAttribute特性的方法var methods = type.GetMethods().Where(p=>p.IsDefined(typeof(ApiAttribute),true)).ToList();foreach (var method in methods){ApiAttribute? att = method.GetCustomAttribute(typeof(ApiAttribute)) as ApiAttribute;Console.WriteLine($"方法名:{method.Name}   说明:{att?.name}");//获取方法所有参数var parameters = method.GetParameters();foreach (var param in parameters){Console.WriteLine($"参数名:{param.Name}  参数类型:{param.ParameterType.Name}");}//创建实例var obj = Activator.CreateInstance(type);var key = Console.ReadLine();//调用方法var res = method.Invoke(obj, new object[] { key });//获取方法返回类型var aa = method.ReturnType.Name;Console.WriteLine($"调用方法返回类型:{aa}  返回结果:{res}");}}

下面来做个总结:

反射提供封装程序集、模块和类型的对象。 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。 然后,可以调用类型的方法或访问其字段和属性。 反射的典型用法如下所示:

  • 使用 Assembly 来定义和加载程序集,加载程序集清单中列出的模块,以及在此程序集中定位一个类型并创建一个它的实例。

  • 使用 Module 发现信息,如包含模块的程序集和模块中的类。 还可以获取所有全局方法或模块上定义的其它特定的非全局方法。

  • 使用 ConstructorInfo 发现信息,如名称、参数、访问修饰符(如 public 或 private)和构造函数的实现详细信息(如 abstract 或 virtual)。 使用 Type 的 GetConstructors 或 GetConstructor 方法来调用特定构造函数。

  • 使用 MethodInfo 发现信息,如名称、返回类型、参数、访问修饰符(如 public 或 private)和方法的实现详细信息(如 abstract 或 virtual)。 使用 Type 的 GetMethods 或 GetMethod 方法来调用特定方法。

  • 使用 FieldInfo 发现信息,如名称、访问修饰符(如 public 或 private)和一个字段的实现详细信息 (如 static);并获取或设置字段值。

  • 使用 EventInfo 发现信息(如名称、事件处理程序的数据类型、自定义特性、声明类型以及事件的反射的类型),并添加或删除事件处理程序。

  • 使用 PropertyInfo 发现信息(如名称、数据类型、声明类型,反射的类型和属性的只读或可写状态),并获取或设置属性值。

  • 使用 ParameterInfo 发现信息,如参数的名称、数据类型、参数是输入参数还是输出参数以及参数在方法签名中的位置。

  • 使用 CustomAttributeData 在于应用程序域的仅反射上下文中工作时发现有关自定义特性的信息。 CustomAttributeData 使你能够检查特性,而无需创建它们的实例。 System.Reflection.Emit 命名空间的类提供一种专用形式的反射,使你能够在运行时生成类型。

 

http://www.zhongyajixie.com/news/39718.html

相关文章:

  • 做网站得做多少网页百度网络电话
  • 谁知道陕西省建设监理协会的网站登封网站设计
  • 武汉app制作平台seo搜索引擎优化哪家好
  • 房屋设计软件免费下载张家口网站seo
  • 微商货源网平台seo优化教学视频
  • 安康疫情最新消息对网站的建议和优化
  • 用asp.net做购物网站1688官网
  • 做外国人的生意哪家网站好精准营销的案例
  • 手表商城网站建设首页关键词排名优化
  • 红酒 网站 模板手机营销推广方案
  • 网站如何做问卷调查报告怎样在网上做宣传
  • 网站首页跳出弹窗陕西省人民政府
  • 专门做汽车动力性测试的网站河南郑州最近的热搜事件
  • 手机做的兼职网站企业培训内容有哪些
  • 温岭网站建设中国最新消息
  • dede批量建站视频号直播推广二维码
  • 棋牌网站建设要多少钱深圳居家办公
  • 做网站ceo百度公司在哪里
  • 做移动网站快速排痘痘怎么去除效果好
  • 网页和网站的关系百度指数数据来源
  • 英文网站模板改成中文网站推广怎样做
  • 常见b2c网站有哪些seo成功案例分析
  • 阆中市建设局网站首页百度托管运营哪家好
  • 社交网站建设武汉seo网站排名
  • 怎么查找网站后台如何网上销售自己的产品
  • 深圳网站建设公司多吗上海网站seo
  • 山东网站建设公司电话sem推广是什么
  • 做网站开发要学什么软件百度推广联系人
  • 网站建设单选谷歌独立站
  • 松岗做网站费用seo营销优化软件