.net Reflection(反射)- 一
Reflection 反射需要引用 using System.Reflection; 命名空间。
通过 Assembly 类的 Load( ); 加载指定的 程序集
Assembly 是不能被实例化, 所以能通过调用静态方法Load();加载指定程序集。
通过GetType()RefLiuyl中GetCond的类型
Assembly assembly = Assembly.Load("RefLiuyl");
//获取类型,参数(名称空间+类)
Type type = assembly.GetType("RefLiuyl.GetCon");
还有一种当使用泛型的时候 GetName<T>() 。 直接 获取类型Type type = typeof(T);
我们来看看部分内部Load原型静态方法:
//Assembly内部Load原型 --部分
public class Assembly
{
//Load静态重载原型
public static Assembly Load(AssemblyName assemblyRef);
public static Assembly Load(string assemblyString);
}
这里的 AssemblyName 其实就是取 程序集
AssemblyName classlibrary = new AssemblyName("ClassLibrary");
Assembly assembly = Assembly.Load(classlibrary);
Assembly 还可以通过路径来加载程序集
Assembly assem = Assembly.LoadFrom("path");
//Assembly内部Load原型 --部分
public class Assembly
{
//Load静态重载原型
public static Assembly LoadFrom(string path);
}
二。构造类型的实例
Assembly assembly = Assembly.Load("RefLiuyl");
//获取类型,参数(名称空间+类)
Type type = assembly.GetType("RefLiuyl.GetCon");
获取到类型后,我们需要实例化它。
通过System.Activator的CreateInstance方法来实例化它。
AssemblyName classlibrary = new AssemblyName("ClassLibrary");
// Assembly assembly = Assembly.Load(classlibrary);
Assembly assembly = Assembly.Load("ClassLibrary");
//通过GetType()获取类型
//获取类型,参数(名称空间+类)
Type type = assembly.GetType("ClassLibrary.Student");
//创建该对象的实例,object类型,参数(名称空间+类)
object instance = assembly.CreateInstance("ClassLibrary.Student");
//或者直接使用type
object instance1 = Activator.CreateInstance(type);
//当使用泛型
Type type = typeof(T);
T destObj = Activator.CreateInstance<T>();
Activator.CreateInstance(); 返回的就是 类实例 GetProperties(); 返回程序集类型中的所有属性
//通过GetType()获取类型
//获取类型,参数(名称空间+类)
Type type = assembly.GetType("ClassLibrary.Student");
foreach (PropertyInfo prop in type.GetProperties())
{
string namses= prop.Name;
}
返回的就是 程序集中 实例类的属性字段。
.net Reflection(反射)- 一的更多相关文章
- 代替Reflection(反射)的一些方法
Reflection(反射)是深入学习.Net必须掌握的技能之一.最初学Reflection的时候,的确是被惊住了,原来还可以这样.只要给你一个Assembly, 你就能获取到其中所有的类型,根据类型 ...
- 代替Reflection(反射)的一些方法(转)
作者:JustRun 林肯: http://www.cnblogs.com/JustRun1983/p/3830764.html 代替Reflection(反射)的一些方法(转) 2014-07-08 ...
- Java进阶之reflection(反射机制)——反射概念与基础
反射机制是Java动态性之一,而说到动态性首先得了解动态语言.那么何为动态语言? 一.动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以引进,已有的函数可以被删除等结构上的变化.比如常见 ...
- Java Reflection 反射基础
反射基础: package reflection; /** * Created by : Infaraway * DATE : 2017/3/2 * Time : 23:06 * Funtion : ...
- List GroupBy真实用法,Reflection(反射)用法,Enum用法,正则,搜索下拉布局
1.List GroupBy 用法 var _roomProducts = homesingProducts.GroupBy(t => t.RoomName); RoomedProducts ...
- java学习--Reflection反射机制
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制. ...
- PHP的Reflection反射机制
更多内容推荐微信公众号,欢迎关注: 原文地址: http://www.nowamagic.net/php/php_Reflection.php PHP5添加了一项新的功能:Reflection.这个功 ...
- C# 反射Reflection——反射反射程序员的快乐
一.什么是反射 反射Reflection:System.Reflection,是.Net Framework提供的一个帮助类库,可以读取并使用metadata. 反射是无处不在的,MVC-Asp.Ne ...
- Java之reflection(反射机制)——通过反射操作泛型,注解
一.反射操作泛型(Generic) Java采用泛型擦除机制来引入泛型.Java中的泛型仅仅是给编译器Javac使用的,确保数据的安全性和免去强制类型转换的麻烦.但是编译一旦完成,所有和泛型有关的类型 ...
- C# Reflection反射机制
一.反射 什么是反射 .Net的应用程序由几个部分:'程序集(Assembly)'.'模块(Module)'.'类型(class)'组成: 反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组 ...
随机推荐
- linux用rdate命令实现同步时间
用rdate命令实现同步时间 前两天说到用ntp时间服务器和ntpdate命令同步时间,今天简单记录下用rdate同步时间 http://blog.csdn.net/wyzxg/archive/201 ...
- 解决时间控件input不能选择的问题
方法一: 方法二: 方法二参考: https://blog.csdn.net/huilan_same/article/details/52385401
- 过河卒(Noip2002)(dp)
过河卒(Noip2002) 时间限制: 1 Sec 内存限制: 128 MB提交: 7 解决: 6[提交][状态][讨论版][命题人:quanxing] 题目描述 棋盘上A点有一个过河卒,需要走到 ...
- el表达式动态拼接变量_c:set的用法
转自:https://blog.csdn.net/xb12369/article/details/39581955如 何在${}中使用${},例:${user.name_${user.id}},use ...
- MySQL OSC(在线更改表结构)原理
1 OSC介绍 在我们的数据库操作中,更改表结构是一个常见的操作,而当我们的表数据量非常大时,我们更改表结构的时间是非 常的长,并且在跟改期间,会生成一个互斥锁,阻塞对整个表的所有操作,这样,对于我们 ...
- 一个简单的AXIS远程调用Web Service示例
我们通常都将编写好的Web Service发布在Tomcat或者其他应用服务器上,然后通过浏览器调用该Web Service,返回规范的XML文件.但是如果我们不通过浏览器调用,而是通过客户端程序调用 ...
- C#向pdf 添加水印
调用直接这样用: //PDFHelper.AddImageWatermarkPDF(path, "D://my.pdf", Server.MapPath("/HtmlTo ...
- 0k6410定时器详细分析
看到一篇很好的博文,分析2410定时器中断的使用的,很详细,和大家分享一下 转载来源于http://www.cnblogs.com/Neddy/archive/2011/07/01/2095176.h ...
- 【HDU4307】Matrix
本篇博客基本全篇转自https://www.cnblogs.com/staginner/archive/2012/08/13/2636826.html,太强啦ORZ 题意 A是个1*n的矩阵,每个元素 ...
- libevent源码深度剖析五
libevent源码深度剖析五 ——libevent的核心:事件event 张亮 对事件处理流程有了高层的认识后,本节将详细介绍libevent的核心结构event,以及libevent对event的 ...