--1.类的部分组成成员

--2.巧记成员之间的关系

   [MyTable("T_UserInfo")]
public class UserInfo : Person, UserService
{ private int _age2;
private int _age;
[DisplayName("年龄")]
public int Age
{
get
{
return _age;
}
set
{
_age = value;
}
}
[DisplayName("姓名")]
public string Name { get; set; }
public void ShowUserInfo()
{
Console.WriteLine(string.Format("name:{0},age:{1}", Name, _age));
} protected void ShowName()
{
Console.WriteLine("showName:" + Name);
}
}
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
public class MyTableAttribute : Attribute
{
private string _tableName;
public MyTableAttribute(string name)
{
_tableName = name;
}
public string Name { get { return _tableName; } }
}

--3.程序集

   // 加载程序集(大脑)
//获取当前运行目录下的指定程序集名称
Assembly ass = Assembly.Load("ReflectionDemo");
//Assembly.LoadFile(),Assembly.LoadFrom()加载指定文件的程序集

--4.类型

    // 加载中枢神经的 所有经络

            //获取该程序集下的所有类型
Type[] types = ass.GetTypes(); //根据类的全名称(命门空间.类名)获取类的信息
Type type1 = ass.GetType("ReflectionDemo.person"); //忽略大小写或找不到该类型抛出异常
//Type type2 = ass.GetType("ReflectionDemo.person2", throwOnError: true, ignoreCase: true); //获取程序集中公共类型
Type[] publicTypes = ass.GetExportedTypes(); //获取类的类型
Type classUserType = typeof(UserInfo); //获取实例的类型
UserInfo ui = new UserInfo();
Type instanceType = ui.GetType(); //获取类型的名称
Console.WriteLine(string.Format("typeFullName:{0},typeName:{1}", instanceType.FullName, instanceType.Name)); //是否继承自某个类
Console.WriteLine("是否继承自某个类-----" + typeof(UserInfo).IsSubclassOf(typeof(Person))); //是否实现了某个接口(接口的实现类型 是否是 指定的类型)
Console.WriteLine("是否实现了某个接口-----" + typeof(UserService).IsAssignableFrom(typeof(UserInfo))); //是否是public的类型
Console.WriteLine("是否是public的类型-----" + classUserType.IsPublic);

--5.字段、属性、方法、特性

   //获取字段 BindingFlags位标记 获取字段不同的方式
//t.GetField();t.GetFields()
FieldInfo fiAge = t.GetField("_age",
BindingFlags.Public |
BindingFlags.NonPublic |
BindingFlags.Static |
BindingFlags.Instance |
BindingFlags.DeclaredOnly);
//获取属性 类似Field
t.GetProperties();
PropertyInfo pi = t.GetProperty("");
//pi.CanRead;//能读
//pi.CanWrite;//能写
//获取方法
MethodInfo[] methods = t.GetMethods();
MethodInfo method = t.GetMethod("ShowUserInfo");
//获取特性
MyTableAttribute tabAttr = t.GetCustomAttribute(typeof(MyTableAttribute)) as MyTableAttribute;
if (tabAttr != null)
{
Console.WriteLine("select * from " + tabAttr.Name);
}

下一篇,反射的数据操作

.Net实战之反射相关类之间的人体经络关系的更多相关文章

  1. ZT 类与类之间的四种关系

    csdn上一个好贴子:http://bbs.csdn.net/topics/390646332 类与类之间的四种关系1.依赖(Dependency)   类A在类B中作为一个成员函数的参数或者是返回值 ...

  2. 图解UML类与类之间的六中关系

    大话设计模式上的一个图,我用EA画出来的:  UML中的6大关系相关英文及音标:  依赖关系 dependency [di'pendənsi]  关联关系 association  [ə,səuʃi' ...

  3. C# UML类图及类之间的几种关系

    今天晚上看了大话设计模式中的UML类图这一节感觉受益匪浅,好多年不能理解的类之间的关系理解了. 一.UML类图的表示方法 1.类的表示方法 A类用一个矩形框分三层表示,第一层是类名,斜体类名表示抽象类 ...

  4. 【转】UML中类与类之间的5种关系表示

    一.继承关系      继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在Java中继承关系通过关键字extends明确标识,在设计时一 ...

  5. 类与类之间的两种关系------新标准c++程序设计

    在c++中,类和类之间有两种基本关系:复合关系和继承关系. 复合关系也称为“has a”关系或“有”的关系,表现为封闭类,即一个类以另一个类的对象作为成员变量. 继承关系也称为“is a”关系或“是” ...

  6. Java类与类之间的6种关系及uml表示

    一.继承关系 继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议 ...

  7. 初识UML类图--类之间关系

    前言 最近有打算学习一下设计模式,所以就去看了园子里面左潇龙大哥的设计模式文章,看完之后只有一个感觉,我啥时候也能写出来这么牛逼的文章啊,但是我这语文老师死的早的人还是算了,但是设计模式还是要学的,这 ...

  8. UML类图画法及其之间的几种关系(转)

    UML类图画法及其之间的几种关系 最近做重构项目,需要画一下类图,发现类图的画法及其之间的几种关系已经淡忘了很多,所以整理总结一下,有问题的地方大家可以一起讨论下. 文章目录如下: 类图画法 类之间的 ...

  9. Java-类与类之间的关系

    类与类之间的几种关系   一.继承关系      继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在Java中继承关系通过关键字exte ...

随机推荐

  1. JSP的表单处理

    以下内容引用自http://wiki.jikexueyuan.com/project/jsp/form-processing.html: 当需要从浏览器向Web服务器传递一些信息并最终将信息返回到后端 ...

  2. Android 原生开发、H5、React-Native使用利弊和场景技术分享

    http://m.blog.csdn.net/article/details?id=51778086 发表于2016/6/28 18:52:46  1176人阅读      最近工作中接触到React ...

  3. html自动换行

    对于div,p等块级元素 正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当定义的宽度之后自动换行html css 1.(IE浏览器)连续的英文字符和阿拉伯数 ...

  4. spring mvc随便接收list<objeect>参数

    在后台设定一个类,PersonList类: public class PersonList {private List<User> user; public List<User> ...

  5. mysql建表语句key的含义

    CREATE TABLE `admin_role` (  `adminSet_id` varchar(32) NOT NULL,  `roleSet_id` varchar(32) NOT NULL, ...

  6. Django学习系列之模板系统

    一.模板标签 if/else {%  if  %}标签检查一个变量的值是否为真或者等于另外一个值,如果为真,系统会执行{%  if  %}和{%  endif  %}之间的代码块,例如: {% if ...

  7. UVa 10534 Wavio Sequence (最长递增子序列 DP 二分)

    Wavio Sequence  Wavio is a sequence of integers. It has some interesting properties. ·  Wavio is of ...

  8. java入门之——对象转型

    对象的类型转换是我们在编程的时候常常会遇到的,java平台也是如此.比方一些基本类型的数据转型和复合数据的转换. 举例 java语言中主要分为向上转型和向下转型,怎样来了解和掌握这两者转型的关系呢?首 ...

  9. HTTP请求库——axios源码阅读与分析

    概述 在前端开发过程中,我们经常会遇到需要发送异步请求的情况.而使用一个功能齐全,接口完善的HTTP请求库,能够在很大程度上减少我们的开发成本,提高我们的开发效率. axios是一个在近些年来非常火的 ...

  10. Centos下mahout安装与配置

    对于Mahout的安装与配置,须要一个前提.就是hadoop已经安装. 假设没有安装能够參考. http://blog.csdn.net/u012965373/article/details/4533 ...