protected static void test()
{  //获取程序集  Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();//Assembly.LoadFrom("test.dll");   //获取模块  Module[] modules = assembly.GetModules();  foreach (Module module in modules)  {  Console.WriteLine("module name:" + module.Name);  }   //获取类  Type type = assembly.GetType("Reflect_test.PurchaseOrderHeadManageModel", true, true); //命名空间名称 + 类名  //创建类的实例  object obj = Activator.CreateInstance(type, true);  //获取私有字段  FieldInfo[] myfields = type.GetFields(BindingFlags.NonPublic | BindingFlags.IgnoreCase | BindingFlags.Instance);  for (int i = 0; i < myfields.Length; i++)  {  Console.WriteLine("字段名:{0},类型:{1}", myfields[i].Name, myfields[i].FieldType);  }  //获取公共属性  PropertyInfo[] Propertys = type.GetProperties();  for (int i = 0; i < Propertys.Length; i++)  {  // Propertys[i].SetValue(Propertys[i], i, null); //设置值  // Propertys[i].GetValue(Propertys[i],null); //获取值  Console.WriteLine("属性名:{0},类型:{1}",Propertys[i].Name,Propertys[i].PropertyType);  }  //构造函数集合  ConstructorInfo[] myconstructors = type.GetConstructors();  foreach (ConstructorInfo csinfo in myconstructors)  {  Console.WriteLine("ConstructorInfo:{0}",csinfo.Name);  foreach (ParameterInfo pinfo in csinfo.GetParameters())//构造函数参数列表
        {  Console.WriteLine("Parameter:{0},{1}", pinfo.Name,pinfo.ParameterType);  }  }  //公共方法,包括属性  MethodInfo[] methods = type.GetMethods();  foreach (MethodInfo method in methods)  {  //IsSpecialName:是否是属性  if (!method.IsSpecialName)   {  // Console.WriteLine("类型:" + method.Attributes);  Console.WriteLine("method name:" + method.Name);  }  }  //调用静态方法  int result = (int)type.InvokeMember("StaticPlus", BindingFlags.InvokeMethod, null, null, new object[] {2,3 });  Console.WriteLine("调用静态方法-结果是:{0}",result);  //调用非静态方法  result = (int)type.InvokeMember("Plus", BindingFlags.InvokeMethod, null, obj, new object[] { 3, 4 });  Console.WriteLine("调用非静态方法-结果是:{0}",result);  EventInfo[] Myevents=type.GetEvents();  foreach (EventInfo einfo in Myevents)  {  Console.WriteLine("事件:{0}", einfo.Name);  }
}  

转载于:https://www.cnblogs.com/colder/p/3360608.html

c#利用反射Assembly 对类和成员属性进行操作相关推荐

  1. php成员属性的声明方式,PHP中如何定义类及其成员属性与操作_PHP教程

    类的概念:类是具有相同属性和操作的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和操作两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属 ...

  2. 利用反射技术修改类中的字段(成员变量的反射)

    题目:利用反射技术修改类中的字段及成员变量的反射 作者:Vashon 一.首先定义一个类如下: class ReflectPoint {private int x; //私有的public int y ...

  3. 利用反射动态实例化类执行方法并传值

    /// <summary>         /// 利用反射动态实例化类执行方法并传值         /// </summary>         /// <param ...

  4. Java反射之Filed(类中的属性对象)

    通过反射机制获取类中的属性对象. 1.获取类中所有的public属性(包括父类):getFields(): public class TestFiled {class A{public int age ...

  5. C# 利用反射动态调用类成员

    使用反射动态调用类成员,需要Type类的一个方法:InvokeMember.对该方法的声明如下: public object InvokeMember( string name, BindingFla ...

  6. (C#)利用反射动态调用类成员[转载]

    使用反射动态调用类成员,需要Type类的一个方法:InvokeMember.对该方法的声明如下(摘抄于MSDN): public object InvokeMember(    string name ...

  7. 利用反射动态调用类成员C#

    使用反射动态调用类成员,需要Type类的一个方法:InvokeMember.对该方法的声明如下(摘抄于MSDN): public object InvokeMember(    string name ...

  8. c# 利用反射获得某个类或者对象的所有属性

    今天碰到一个类,总共有60个列及属性 我做的一个功能需要把这些属性放到一个数组里 一想要用new string[]{"","",....}的话写死了·· 就想到 ...

  9. 利用反射获取一个类中的所有方法和该方法的参数

    因为平时用反射很少,之前一次面试被问到反射这块的一个问题,很简单,当时给了个不是很确切的答案,回家之后也忘了去找出这个问题的答案,今天手头上的工作比较闲,就把之前的那个问题给解决下. 被问到的是,我只 ...

  10. C#利用反射机制,获取实例的属性和属性值

    C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值 对应某个类的实例化的对象tc, 遍历获取所有属性(子成员)的方法(采用反射): Type t = tc.GetType();// ...

最新文章

  1. python json数据格式数组内元素递增赋值_python深浅复制,类型转换, json操作,数组操作...
  2. win docker运行MySQL
  3. 1.Hadoop的学习(Linux的基础命令)
  4. 一道简单的python面试题-购物车
  5. java hanlp分词_Hanlp分词实例:Java实现TFIDF算法
  6. 八种状态增加测试用例状态的精确度
  7. 云昆明理工大学 计算机复试,2012年昆明理工大学计算机考研复试试题(回忆版)...
  8. pcfg 自然语言处理_自然语言处理导航
  9. nginx 网络模型,cpu亲和等优点
  10. python with关键字_python中用with关键字来实现上下文管理器.
  11. poj 1270 Following Orders
  12. 阿里安全体系获国际顶会表彰,安全技术将有九大新趋势
  13. shell 获取指定ip的丢包率
  14. scratch转flash、exe教程
  15. Java反射高频面试题(附答案),做了5年Java
  16. python游戏项目练习——逃出生天(2)
  17. 计算某年某月某日是星期几(基姆拉尔森计算公式)
  18. 《CODE》读后笔记——第14~20章
  19. 一个简单的acm竞赛题
  20. Java Swing添加背景图片

热门文章

  1. 详解JavaScript的闭包
  2. vmware15安装‘黑苹果’macOS 10.13(17A365)
  3. 图片hover且设置transform其父级border-radius失效
  4. C++ 17 string_view(转载)
  5. Ribbon负载均衡源码解读
  6. lnmp mysql 命令_LNMP状态管理命令
  7. linux如何秀爱swap大小,老毛桃PE启动U盘集合CDlinux,BT5可保存设置,wifislax,sliatz中文定制版的方法[存档......
  8. 阿里巴巴商学院计算机考研,2017年杭州师范大学阿里巴巴商学院826计算机基础之C程序设计考研仿真模拟题...
  9. linux脚本定义量,Linux上增加自定义脚本的展现量
  10. 设置width不生效_CSS:你不知道的width:auto