.net Reflection(反射)- 一
2020-12-13 02:16
标签:des style blog class code java Reflection 反射需要引用 using System.Reflection; 命名空间。 通过 Assembly 类的 Load( ); 加载指定的 程序集 Assembly 是不能被实例化,
所以能通过调用静态方法Load();加载指定程序集。
通过GetType()RefLiuyl中GetCond的类型 还有一种当使用泛型的时候 GetName 我们来看看部分内部Load原型静态方法: Assembly 还可以通过路径来加载程序集 Assembly assem = Assembly.LoadFrom("path"); 二。构造类型的实例 返回的就是 程序集中 实例类的属性字段。 .net Reflection(反射)- 一,搜素材,soscw.com .net Reflection(反射)- 一 标签:des style blog class code java 原文地址:http://www.cnblogs.com/dragon-L/p/3711931.html
Assembly assembly = Assembly.Load(
"RefLiuyl"
);
//获取类型,参数(名称空间+类)
Type type = assembly.GetType(
"RefLiuyl.GetCon"
);
//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内部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
Activator.CreateInstance(); 返回的就是 类实例
GetProperties(); 返回程序集类型中的所有属性 //通过GetType()获取类型
//获取类型,参数(名称空间+类)
Type type = assembly.GetType("ClassLibrary.Student");
foreach (PropertyInfo prop in type.GetProperties())
{
string namses= prop.Name;
}
下一篇:SwiftUI 官方教程(六)