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

楼盘网站开发报价无锡网络公司

楼盘网站开发报价,无锡网络公司,去国外做网站,中文网页模板免费下载文章目录 前言反射是什么?常用类型操作SummryPropertyInfoMethodInfo无参函数运行 有参函数运行,获取paramterInfo 总结 前言 我之前写了一篇Attribute特性的介绍,成功拿到了Attribute的属性,但是如果把Attribute玩的溜,那就要彻…

文章目录

  • 前言
  • 反射是什么?
  • 常用类型操作
    • Summry
    • PropertyInfo
    • MethodInfo
      • 无参函数运行
    • 有参函数运行,获取paramterInfo
  • 总结

前言

我之前写了一篇Attribute特性的介绍,成功拿到了Attribute的属性,但是如果把Attribute玩的溜,那就要彻底了解反射。

C#高级语法 Attribute特性详解和类型,方法,变量附加特性讲解

反射是什么?

反射就是对一个类里面所有的元素的彻底描述。我们可以从特性看出C# 对基于反射的类型定义了。

【C#进阶】C# 特性

在这里插入图片描述

我们声明一个简单的类


namespace NETCore8.Models
{public class TestModel{public int Id { get; set; }private string name;public void Send(){}/// <summary>/// 发送测试/// </summary>/// <param name="name"></param>public void TestSend(string name){}public TestModel(){}}
}

在这里插入图片描述

常用类型操作

我们接下来的操作全部都是基于共有属性进行的操作

Summry

但是Summry不属于编译内容,属于注解,如果想要获取Summry信息,则需要安装一个Nuget:Namotion.Refelction

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PropertyInfo

       static void Main(string[] args){//声明一个简单的bindingFlagsBindingFlags bindingFlags = BindingFlags.Public | BindingFlags.Instance;TestModel model = new TestModel();model.Id = 5;var propertyInfo =  model.GetType().GetProperty("Id");Console.WriteLine("属性名:"+ propertyInfo?.Name);Console.WriteLine("属性值:" + propertyInfo?.GetValue(model));Console.WriteLine("属性类型:" + propertyInfo?.PropertyType);propertyInfo.SetValue(model, 10);Console.WriteLine("修改后的属性值:" + propertyInfo.GetValue(model));//如果你安装了Namotion.Refelction,可以使用封装好的扩展方法Console.WriteLine("Namotion.Refelction:" + model.TryGetPropertyValue<int>("Id"));Console.WriteLine("Hello, World!");Console.ReadKey();}

在这里插入图片描述

MethodInfo

无参函数运行

在这里插入图片描述

        static void Main(string[] args){TestModel model = new TestModel();var methodInfo = model.GetType().GetMethod("Send");if (methodInfo != null){Console.WriteLine($"方法名:{methodInfo.Name}");Console.WriteLine($"返回值:{methodInfo.ReturnType}");Console.WriteLine("运行方法");methodInfo.Invoke( model, null );}Console.WriteLine("Hello, World!");Console.ReadKey();}

在这里插入图片描述

有参函数运行,获取paramterInfo

在这里插入图片描述

internal class Program
{static void Main(string[] args){TestModel model = new TestModel();var methodInfo = model.GetType().GetMethod("TestSend");//如果你装了Namotion.Refelction,可以使用Xml方法获取注解if (methodInfo!= null ){Console.WriteLine($"方法名:{methodInfo.Name}");Console.WriteLine($"返回值:{methodInfo.ReturnType}");Console.WriteLine($"方法注解:{methodInfo.GetXmlDocsSummary()}");var parmeters = methodInfo.GetParameters();foreach (var item in parmeters){Console.WriteLine($"参数名:{item.Name}");Console.WriteLine($"参数类型:{item.ParameterType}");Console.WriteLine($"参数注解:{item.GetXmlDocs()}");}Console.WriteLine("运行方法,注意无法解决重载问题,因为重载的方法名相同,会直接抛出异常");Console.WriteLine("运行方法的参数类型和个数必须完全一致");methodInfo.Invoke(model, new object[] { "入参",1 });}Console.WriteLine("Hello, World!");Console.ReadKey();}
}

在这里插入图片描述

总结

我们将反射类型的常用内容已经讲解完了。接下来我们将主要讲解Attribute的详细运用。经过这么久的铺垫,我们终于可以开始正常的讲解了。

http://www.ds6.com.cn/news/29950.html

相关文章:

  • 宜宾网站建设怎么优化网站性能
  • 电子商务网站分类东莞seo整站优化
  • 中石化两学一做网站百度注册公司网站
  • 做兼职调查哪个网站好线下推广有哪些渠道
  • 万达做的电商网站百度指数分析案例
  • 一般通过什么渠道了解防灾减灾知识seo公司怎么推广宣传
  • 网站如何做滚动效果培训方案怎么做
  • 做网站无需备案网络营销的特点不包括
  • 网站是新媒体平台吗怎么做
  • 万维网使用的网站seo运营是什么意思
  • 扬中网站建设 优帮云推销广告
  • 点开图片跳到网站怎么做海口网站排名提升
  • 厦门网站设计个人百度站长工具平台登录
  • 做网站方法网站结构
  • 聊城网站建设公司电话最近国际时事热点事件
  • 霞山网站建设公司交换友链
  • 重庆建设部网站12月30日疫情最新消息
  • 上海网站建设公司地址公众号推广一个6元
  • 自己的电脑做网站服务器网络营销工具有哪些?
  • 河南做网站那家最好互联网广告优势
  • 制作网站需要学什么软件有哪些内容网站优化排名易下拉软件
  • 做国际网站花钱吗宝鸡seo优化公司
  • Wordpress嵌套其他网站知乎营销推广
  • 做网站要先申请域名吗免费下载百度一下
  • 长春网站排名推广北京核心词优化市场
  • 五河网站建设哪家好seo整站优化方案
  • 做电影下载网站湖南网络推广机构
  • 免费已备案二级域名网站网络优化有前途吗
  • 公司网站建设手机端跟PC端百度seo排名主要看啥
  • 建设网站用什么语言佛山疫情最新消息