冰之随笔一(c#反射、特性)
接触反射是从写三层开始的
反射关键字:
Assembly 程序集对象 其静态方法LoadForm(path)可以根据路径获取程序集,并且Assembly是一个抽象类,不能new,也不能继承
程序集对象下常用的方法:
Assembly assembly=Assembly.LoadFrom(Path);//Path是一个程序集路径(以.exe或者以.dll为后缀的)
assembly.GetTypes()//获取程序集中的类型集合,返回一个Type[]
assembly.GetType(name)//获取指定名字的类型,返回一个Type
Type对象下常用的方法
Type type = ass.GetType();//创建一个Type实例
PropertyInfo[] pi = type.GetProperties();//获取所有属性
pi=type.GetProperty(name);//获取指定名字的属性
pi.SetValue(type,值,null)//给属性赋值(type是这个属性所属的实例)
pi.GetValue()//读取实例中这个属性的值
· FieldInfo[] fis = type.GetFields();//获取该类下的所有字段
MethodInfo[] mis = type.GetMethods();//获取所有方法
MethodInfo mi=type.GetMethod(name);//根据指定名称获取方法
mi.Invoke(type,参数);//执行方法(mi.GetParameters()获取方法中参数的方法,返回一个ParameterInfo[]))
ConstructorInfo[] cis = type.GetConstructors();//获取所有构造函数
注:一般都用foreach循环遍历
特性:
特性本质上是一个类,一个继承了Attribute的类
一般特性类的命名都采用Attribute结尾,类中一般没有方法
[类型(参数)]调用
以上纯属本人学习经验,还有很多不足,欢迎各位大神指点
冰之随笔一(c#反射、特性)的更多相关文章
- CodeFirst(反射+特性)
using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy ...
- C#利用反射+特性实现简单的实体映射数据库操作类
附上源代码: using System; using System.Collections.Generic; using System.Data; using System.Linq; using S ...
- 随笔分类 - java高级特性
转自:http://www.cnblogs.com/linjiqin/category/282013.html
- C#图解教程 第二十四章 反射和特性
反射和特性 元数据和反射Type 类获取Type对象什么是特性应用特性预定义的保留的特性 Obsolete(废弃)特性Conditional特性调用者信息特性DebuggerStepThrough 特 ...
- C# 利用反射
.NET基础篇——反射的奥妙 C#获取实体类属性名和值 | 遍历类对象 c#通过反射获取类上的自定义特性 C#利用反射+特性实现简单的实体映射数据库操作类
- C#语法——反射,架构师的入门基础。
前言 编程其实就是写代码,而写代码目的就是实现业务,所以,语法和框架也是为了实现业务而存在的.因此,不管多么高大上的目标,实质上都是业务. 所以,我认为不要把写代码上升到科学的高度.上升到艺术就可以了 ...
- asp.net 自定义特性
今天看张子阳的.net中的反射(反射特性)一文,觉得反射配合自定义的特性确实还挺有用,之前看书.看博客之后好多心血来潮敲的代码随便往桌面上一放,时间一久,连自己也分不清它们是干嘛的了,然后就是删除,虽 ...
- 20181122_C#中AOP_使用Unity实现AOP
一. 使用Unity的AOP实现 a) 整体项目截图: b) 添加Unity的Nuget包, 直接使用最新版就行, 需要添加两个 Unity 和 Unity.Interceptio ...
- .NET基础拾遗(4)委托、事件、反射与特性
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...
随机推荐
- subprocess模块和logging模块
主要内容: 一.subprocess模块 二.logging模块 1️⃣ subprocess模块 三种执行命令的方法 subprocess.run(*popenargs, input=None, ...
- sys模块和shutil模块
一.sys模块 常用方法有: #!/usr/bin/env python3 #-*- coding:utf-8 -*- # write by congcong import sys # 命令行参数Li ...
- libevent源码深度剖析七
libevent源码深度剖析七 ——事件主循环 张亮 现在我们已经初步了解了libevent的Reactor组件——event_base和事件管理框架,接下来就是libevent事件处理的中心部分 — ...
- linux 压力测试工具 webbench
webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便. 1.适用系统:Linux 2.编译安装: 1. wget htt ...
- php 5.3 以上fpm安装
安装PHP #wget http://cn2.php.net/get/php-5.3.8.tar.gz/from/cn.php.net/mirror #tar -zxvf php-5.3.8.tar. ...
- 使用百度翻译的API接口
http://api.fanyi.baidu.com/api/trans/product/desktop 这是申请的接口地址,会得到一个APPID和一个钥密 然后下载PHP的对应的代码 有一个PHP文 ...
- 360 安全卫士 for Linux 使用结果
测试了一把,结果显示360基本对Linux社区规范和安全常识不give a fuck. 胡乱打包 首先,这个deb包就是胡乱打包,依赖关系就没弄好: $ dpkg-deb -I 360safeforl ...
- oracle数据库单表查询
今天给大家分享的是关于数据库的单表查询,像单表查询/多表查询/分组查询/子查询,这些方法的使用在实际项目过程中会经常用到,作为一名合格的测试人员如果不会数据库那肯定是不行的,行走江湖可能随时会面临被侮 ...
- 处理iOS设备的屏幕旋转
某些情况下,不强制的给用户唯一的屏幕角度给用户.这样用户可以旋转手机得到不同的视觉体验. 最简单的就是safari,横看竖看都可以. 这时需要捕捉用户的屏幕旋转事件并处理.很简单,才两步.比把大象装冰 ...
- 【SQL】- 基础知识梳理(二) - SQL简介
一.引言 在梳理这些知识之前,说实话,如果有人问我SQL是什么?我可能会回答就是“INSERT,DELETE,UPDATE,SELECT”语句呗,还能是啥. 二.SQL概念 SQL是什么? SQL是S ...