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(反射)- 一的更多相关文章

  1. 代替Reflection(反射)的一些方法

    Reflection(反射)是深入学习.Net必须掌握的技能之一.最初学Reflection的时候,的确是被惊住了,原来还可以这样.只要给你一个Assembly, 你就能获取到其中所有的类型,根据类型 ...

  2. 代替Reflection(反射)的一些方法(转)

    作者:JustRun 林肯: http://www.cnblogs.com/JustRun1983/p/3830764.html 代替Reflection(反射)的一些方法(转) 2014-07-08 ...

  3. Java进阶之reflection(反射机制)——反射概念与基础

    反射机制是Java动态性之一,而说到动态性首先得了解动态语言.那么何为动态语言? 一.动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以引进,已有的函数可以被删除等结构上的变化.比如常见 ...

  4. Java Reflection 反射基础

    反射基础: package reflection; /** * Created by : Infaraway * DATE : 2017/3/2 * Time : 23:06 * Funtion : ...

  5. List GroupBy真实用法,Reflection(反射)用法,Enum用法,正则,搜索下拉布局

    1.List  GroupBy 用法 var _roomProducts = homesingProducts.GroupBy(t => t.RoomName); RoomedProducts ...

  6. java学习--Reflection反射机制

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制. ...

  7. PHP的Reflection反射机制

    更多内容推荐微信公众号,欢迎关注: 原文地址: http://www.nowamagic.net/php/php_Reflection.php PHP5添加了一项新的功能:Reflection.这个功 ...

  8. C# 反射Reflection——反射反射程序员的快乐

    一.什么是反射 反射Reflection:System.Reflection,是.Net Framework提供的一个帮助类库,可以读取并使用metadata. 反射是无处不在的,MVC-Asp.Ne ...

  9. Java之reflection(反射机制)——通过反射操作泛型,注解

    一.反射操作泛型(Generic) Java采用泛型擦除机制来引入泛型.Java中的泛型仅仅是给编译器Javac使用的,确保数据的安全性和免去强制类型转换的麻烦.但是编译一旦完成,所有和泛型有关的类型 ...

  10. C# Reflection反射机制

    一.反射 什么是反射 .Net的应用程序由几个部分:'程序集(Assembly)'.'模块(Module)'.'类型(class)'组成: 反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组 ...

随机推荐

  1. bootstrapSwitch 使用

    1.bootstrapSwitch 默认选项,加上checked表示true,不加表示false <input type="checkbox" id="" ...

  2. Elasticsearch5.6安装

    Elasticsearch5.6安装 1.下载 5.6.8 sudo curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/e ...

  3. 基本教程篇--第一节:InitialSampleDemo.cs介绍

       第一节:InitialSampleDemo.cs介绍         为了讲解方便,我先附上源代码和效果图. 代码如下: using System; using System.Drawing; ...

  4. 给安卓端调用的apk、图片下载接口

    package com.js.ai.modules.pointwall.action; import java.io.File; import java.io.FileInputStream; imp ...

  5. 一种js异步处理方式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. storm和kafka整合

    storm和kafka整合 依赖 <dependency> <groupId>org.apache.storm</groupId> <artifactId&g ...

  7. Shell编程的基本语法

    Shell编程 创建sh文件 touch test.sh vim test.sh 写入如下内容 #!/bin/bash a="hello" 运行 chmod +x /root/te ...

  8. Canopy聚类算法

    Canopy聚类算法(经典,看图就明白) 聚类算法. 这个算法获得的并不是最终结果,它是为其他算法服务的,比如k-means算法.它能有效地降低k-means算法中计算点之间距离的复杂度. 图中有一个 ...

  9. Vue 简单的总结一

    let 变量 1. 局部作用域 2. 不会存在变量提升 3. 变量不能重复声明 const 变量 1. 局部作用域 2. 不会存在变量提升 3. 变量不能重复声明 4. 只能声明常量,不可变得量 th ...

  10. 安装sshpass:No package sshpass available

    安装sshpass的时候,报了如下错误: No Package sshpass available 更改软件源之后也无效.直到看到StackOverFlow上的一个问题:https://stackov ...