C#反射通过类名的字符串获取生成对应的实例
在.net core 1.1环境下
今天项目中遇到这个问题了,稍微查了一下并没有现成的样例。自己实现了。
static void Main(string[] args)
{
TestGetAssembly();
}
static void TestGetAssembly()
{
AssemblyName name=new AssemblyName("Reflect");//我的程序集的名称为"Reflect"
var result = Assembly.Load(name);
Console.WriteLine(result.FullName);
TestGetIntance(result);
} static void TestGetIntance(Assembly assembly)
{
Users user= (Users)assembly.CreateInstance("Reflect.Users");//这里要写的格式为“命名空间.类名称”,切记!
user.ID = ;
Console.WriteLine(user.ID);
}
更新:
发现了一种更简单的方法(构造函数无参数的情况)
public T GetInstance<T>(string instanceName)
{ return (T)Assembly.Load(Assembly.GetAssembly(typeof(T)).GetName().Name).CreateInstance(typeof(T).Namespace+"."+instanceName); }
构造函数有参的情况(参数param 表示要传递给生成实例构造函数的参数)
public static T GetInstance<T>(string instanceName,params object[] param)
{
return (T)Assembly.Load(Assembly.GetAssembly(typeof(T)).GetName().Name).CreateInstance(typeof(T).Namespace+"."+instanceName,true,BindingFlags.CreateInstance,null, param,Thread.CurrentThread.CurrentCulture,null);
}
查看程序集的名称方法为右键项目,点击属性就可以查看到程序集名称,和命名空间了。
C#反射通过类名的字符串获取生成对应的实例的更多相关文章
- python_反射——根据字符串获取模块中的属性
1.获取当前模块中的属性 class Person(object): def __init__(self,name,age): self.name = name self.age = age p = ...
- C#、Python中分别是怎么实现通过字符串获取实体类的值以及给实体类赋值
一.引入 最近遇到一个项目里面的功能,在给实体类赋值的时候,由于赋值字段是动态生成的,所以如果用常用的方法(直接实体类的名称.字段名=要赋的值),将会生成很多无用的代码,所以找到了一个通过反射的赋值与 ...
- Python 中的POST/GET包构建以及随机字符串的生成-乾颐堂
现在,我们来用Python,创建GET包和POST包. 至于有什么用处,大家慢慢体会. Python 中包含了大量的库,作为一门新兴的语言,Python 对HTTP有足够强大的支持. 现在,我们引入新 ...
- C++反射机制:可变参数模板实现C++反射(使用C++11的新特性--可变模版参数,只根据类的名字(字符串)创建类的实例。在Nebula高性能网络框架中大量应用)
1. 概要 本文描述一个通过C++可变参数模板实现C++反射机制的方法.该方法非常实用,在Nebula高性能网络框架中大量应用,实现了非常强大的动态加载动态创建功能.Nebula框架在码云的仓库地 ...
- PHP“Cannot use object of type stdClass as array” (php在调用json_decode从字符串对象生成json对象时的报错)
php再调用json_decode从字符串对象生成json对象时,如果使用[]操作符取数据,会得到下面的错误 错误:Cannot use object of type stdClass as arra ...
- python-根据字符串动态生成对象eval
# -*- coding: utf-8 -*- stock1={ 'stockName':"沈阳机床", ", 'averagePrice_yesterday':34.0 ...
- storm源码之巧用java反射反序列化clojure的defrecord获取属性值
[原创]storm源码之巧用java反射反序列化clojure的defrecord获取属性值 [原创]storm源码之巧用java反射反序列化clojure的defrecord获取属性值 storm源 ...
- asp.net mvc 中通过url字符串获取controller和action
在项目中遇到需要通过url字符串获取controller和action的情况,百度了 一下找到了一个可以用的方法 ,在这里分享和记录一下 这个方法是在博客园的博问里看到的 原文地址是http://q. ...
- 利用Java反射根据类的名称获取属性信息和父类的属性信息
代码: import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java ...
随机推荐
- 自适应滤波:奇异值分解SVD
作者:桂. 时间:2017-04-03 19:41:26 链接:http://www.cnblogs.com/xingshansi/p/6661230.html 声明:欢迎被转载,不过记得注明出处哦 ...
- Vijos1144小胖守皇宫【树形DP】
皇宫看守 太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫.皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状:某些宫殿间可以互相望见.大内保卫森严,三步一岗,五步一哨,每个宫殿都要有人全天候看 ...
- 常用PHP函数整理
is_upload_file() 判断文件是不是通过HTTP POST 方式上传来的in_array() 判断变量在不在数组范围内move_uploaded_file() 将上传的临时名移到指定文件夹 ...
- MyBetis3.2框架技术
1.1 MyBatis介绍 MyBatis 世界上流行最广泛的基于SQ语句的ORM框架,由Clinton Begin 在2002 年创建,其后,捐献给了Apache基金会,成立了iBatis 项 ...
- Spring Dubbo 开发笔记(一)——概述
概述: Spring Dubbo 是我自己写的一个基于spring-boot和dubbo,目的是使用Spring boot的风格来使用dubbo.(即可以了解Spring boot的启动过程又可以学习 ...
- memcached预热失败
缓存逻辑:set和get方法通过中间层SocketServer,由SocketServer去操作缓存(同步备用缓存等) 预热逻辑:在SocketServer里面打日志,通过日志去预热新缓存 出现问题: ...
- cssreset
/** * http://cssreset.com */html, body, div, span, applet, object, iframe,h1, h2, h3, h4, h5, h6, p, ...
- 跟着刚哥梳理java知识点——反射和代理(十七)
反射机制是什么?反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有的属性和方法:对于任意一个对象,都能够调用他的一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为java语 ...
- git 设置不需要输入密码, 去除 fetch / pull 代码每次都需要输入密码的烦恼
https方式每次都要输入密码,按照如下设置即可输入一次就不用再手输入密码的困扰而且又享受https带来的极速 设置记住密码(默认15分钟): git config --global credenti ...
- base 镜像 - 每天5分钟玩转容器技术(10)
上一节我们介绍了最小的 Docker 镜像,本节讨论 base 镜像. base 镜像有两层含义: 不依赖其他镜像,从 scratch 构建. 其他镜像可以之为基础进行扩展. 所以,能称作 base ...