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 = ; i < myfields.Length; i++)
{
Console.WriteLine("字段名:{0},类型:{1}", myfields[i].Name, myfields[i].FieldType);
} //获取公共属性
PropertyInfo[] Propertys = type.GetProperties();
for (int i = ; 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[] {, });
Console.WriteLine("调用静态方法-结果是:{0}",result); //调用非静态方法
result = (int)type.InvokeMember("Plus", BindingFlags.InvokeMethod, null, obj, new object[] { , });
Console.WriteLine("调用非静态方法-结果是:{0}",result); EventInfo[] Myevents=type.GetEvents();
foreach (EventInfo einfo in Myevents)
{
Console.WriteLine("事件:{0}", einfo.Name);
}
}

c#利用反射Assembly 对类和成员属性进行操作的更多相关文章

  1. PHP中如何定义类及其成员属性与操作

    1.类的定义: i. 类的关键字定义使用class 1.定义一个空类 Class Person{}; 2.定义一个有成员属性和操作的类 Class Person{ 成员属性........ 操    ...

  2. PHP如何定义类及其成员属性与操作

    1.类的定义: 类的关键字定义使用class 1.定义一个空类 Class Person{}; 2.定义一个有成员属性和操作的类 Class Person{ //成员属性 $name     =  ' ...

  3. c#利用反射实现对类中的常量进行取值和对应常量的注释

    C#利用反射实现对类中的常量进行取值和对应常量的注释 项目示例:https://gitee.com/dhclly/IceDog.GenerateErrorCode 因为业务需要,项目中有大量的错误码, ...

  4. 利用反射创建User类的对象

    package com.bjpowernode; public class User { private int age; public String name; public void m1() { ...

  5. C# 中利用反射机制拷贝类的字段和属性(拷贝一个类对象的所有东西付给另一个类对象,而不是付给引用地址)

    from:https://blog.csdn.net/poxiaohai2011/article/details/27555951 //C# 中利用反射机制拷贝类的字段和属性(拷贝一个类对象的所有东西 ...

  6. [javaSE] 反射-获取类的成员属性和构造方法

    成员属性和构造方法皆为对象,通过Class对象的方法可以得到 package com.tsh.reflect; import java.lang.reflect.Constructor; import ...

  7. C#利用反射来判断对象是否包含某个属性的实现方法

    本文实例展示了C#利用反射来判断对象是否包含某个属性的实现方法,对于C#程序设计人员来说有一定的学习借鉴价值. 具体实现代码如下: /// <summary> /// 利用反射来判断对象是 ...

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

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

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

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

随机推荐

  1. C-从源文件到可执行文件的详细编译链接过程

    一直用windows一键搞定, 没有去了解详细的编译链接过程, 今天看了一篇文章, 顺便实验和记录在Linux下逐步生成的步骤. 预处理: 执行#include, #define, #if, #ifd ...

  2. HDUOJ---Hamming Distance(4712)

    Hamming Distance Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) ...

  3. Google C++单元测试框架之宏

    一.概述 gtest中,断言的宏可以理解分为两类,一类是ASSERT系列,一类是EXPECT系列: 1.ASSERT_*系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例) 2.EXCE ...

  4. (二)RocketMq入门之消息发送和接收

    一.消息产生.发送 public class Producer { public static void main(String[] args) throws MQClientException { ...

  5. Hive查看table在HDFS上的存储路径

    hive>show databases;hive>use databasename;hive>show create table tablename; --查看table的存储路径h ...

  6. Kafka剖析:Kafka背景及架构介绍

    <Kafka剖析:Kafka背景及架构介绍> <Kafka设计解析:Kafka High Availability(上)> <Kafka设计解析:Kafka High A ...

  7. 基于Unity3d 引擎的Android游戏优化

    原文地址:http://blog.csdn.net/jixuguo/article/details/9018669 近期项目进入收尾阶段,之前对项目做了非常多优化,mesh合并 .降低DrawCall ...

  8. ORACLE生成唯一标识函数

    -- Create tablecreate table TAB_TEST( id VARCHAR2(40) not null, fxnum VARCHAR2(40)) ---------------- ...

  9. 每天一点儿Java--ComboBox

    import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; impor ...

  10. angular学习笔记(十六) -- 过滤器(2)

    本篇主要介绍angular自定义的过滤器: 直接看例子: <!DOCTYPE html> <html ng-app="MyFilter"> <head ...