美文网首页
C#之反射

C#之反射

作者: 段煜华 | 来源:发表于2019-06-01 16:46 被阅读0次

为什么需要反射

  • 有时不知道具体的类型,可以通过dll去得到类的对象;
  • 某些特殊方法,传过来的是泛型类,需要通过反射处理某些特殊的业务;
  • 通用方法DataTable和List<T>的相互转化时需要用到反射;

怎样使用反射

得到对象的所有public成员

Type.GetMembers();

得到对象的所有public属性

Type.GetProperties();

得到对象的所有public字段

Type.GetFields();

得到对象的私有成员

Type.GetFields(BindingFlags.NonPublic | BindingFlags.Instance);

得到对象的静态成员

Type.GetMembers(BindingFlags.Public|BindingFlags.Static);

还有枚举类型等等,基本上都是在BindingFlags这个上面做处理。

/// 反射得到泛型类的实体
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public static T GetModel<T>()
{
    var model = default(T);
    //得到对象的方法一:
    model = (T)typeof(T).GetConstructor(new System.Type[] { }).Invoke(new object[] { });
    //得到对象的方法二:
    model = (T)Activator.CreateInstance(typeof(T));
    //逻辑处理......            
    return model;
}

相关文章

  • Unity 之如何写出强壮的代码

    【反射】 Unity C#基础之 反射反射,程序员的快乐 Unity C#基础之 特性,一个灵活的小工具 【多线程...

  • C#它山之石

    C# 使用反射技术实例化指定的类C#之玩转反射Reactive Extensions入门IoC solutions...

  • C#之反射

    为什么需要反射 有时不知道具体的类型,可以通过dll去得到类的对象; 某些特殊方法,传过来的是泛型类,需要通过反射...

  • C#之玩转反射

    转载:http://www.cnblogs.com/yaozhenfa/p/CSharp_Reflection_1...

  • 目录 - C#

    总目录 C# 第01局:泛型 C# 第02局:反射 C# 第03局:特性 C# 第04局:委托 C# 第05局:事...

  • C#特性(Attribute)-现学现用

    前言 想要灵性的使用C#反射机制,特性(Attribute)的使用是必不可少的。 C# 特性(Attribute)...

  • C#反射

    C# 反射(Reflection) 反射指程序可以访问、检测和修改它本身状态或行为的一种能力。程序集包含模块,而模...

  • C#反射

    什么是元数据,什么是反射 程序是用来处理数据的,文本和特性都是数据,而程序本身(类的本身和BLC中的类) 这些也是...

  • C#反射

    根据moduleName反射到某个类某个方法 转换成DataView操作Datatable ![B(IRRLH7`...

  • C#反射

    注意:C#本身已经时候用了反射!!!! 以下了解即可不过,反射可以拿到类中private的字段,这个对编程则有用...

网友评论

      本文标题:C#之反射

      本文链接:https://www.haomeiwen.com/subject/dqeatctx.html