Type.GetType()在跨程序集反射时返回null

在使用Type.GetType来进行反射的话,情况就复杂些。这是因为Type.GetType是非强类型的。Type.GetType的参数是一个string为类型的完全限定名,

如果在当前程序集中使用:

var typeFullName = "CommonBizService.Test";
var type = Type.GetType(typeFullName );

如果当string表示的目标类型不在当前程序集中,则运行时Type.GetType会返回null。

在网上 找了一些,也都试了。可行如下:

var typeFullName = "CommonBizService.Test";
var type = Type.GetType(typeFullName+",CommonBizService" );
CommonBizService:就是Test所在的程序集名称,记住不要写成:CommonBizService.dll

参考:http://www.cnblogs.com/jjhe369/archive/2011/07/12/2104673.html
时间: 2024-10-14 13:38:10

Type.GetType()在跨程序集反射时返回null的相关文章

Type.GetType()在跨程序集反射时返回null的解决方法

在开发中,经常会遇到这种情况,在程序集A.dll中需要反射程序集B.dll中的类型.如果使用稍有不慎,就会产生运行时错误.例如使用Type.GetType("BNameSpace.ClassName")在程序集A.dll获取程序集B.dll中的类型,就会返回Null. 关于跨程序集的反射,有两点需要注意: 1.如果使用typeof,编译能通过,则跨程序集的反射一定可以正常运行.可以说,typeof是支持强类型的.比如 1 Type supType = typeof(BNameSpace

Type.GetType()与 typeof跨程序集反射

原博地址:http://www.cnblogs.com/hyl8218/archive/2010/02/19/1667440.html 上一篇的热更新还不够完善,所以另外查了下相关资料,准备做一个完整的热更新系统. 在开发中,经常会遇到这种情况,在程序集A.dll中需要反射程序集B.dll中的类型.如果使用稍有不慎,就会产生运行时错误.例如使用Type.GetType("BNameSpace.ClassName")在程序集A.dll获取程序集B.dll中的类型,就会返回Null. 关于

DBUtils使用BeanListHandler及BeanHandler时返回null

一.使用Bean相关方法时返回null 问题描述: 使用DBUtils查询数据,如果使用ArrayListHandler等都能够返回正确值,但使用BeanListHandler 和 BeanHandler则一直返回null 解决方案: 实体类的属性名称必须要同数据库中的字段一模一样(区分大小写) 二.查询时报错参数为空 问题描述 Exception in thread "main" java.sql.SQLException: Cannot create com.netvour.ent

c# 反射时GetType方法查找Type的分析

反射是高级语言里面很强大的一种机制.C#也给我们提供了强大的反射机制.反射使用起来非常简单,最常见的步骤是: 1,定义一个Type 对象, Type myType; 2,通过字符串或者其它流初始化该对象,MyType = Type.GetType("MyClass"); 在Type.GetType()方法执行时,系统怎么根据字符串查找正确的类的定义呢?看下面代码 [c-sharp] view plain copy using System; using System.Collectio

Type.GetType()反射另外项目中的类时返回null的解决方法

项目1:ProjectA namespace ProjectA { public class paa { .... } } Type.GetType("paa")返回null Type.GetType("ProjectA.paa")返回正确 项目2:ProjectB 引用了ProjectA Type.GetType("ProjectA.paa")返回空值 Type.GetType("ProjectA.paa,ProjectA"

C# 反射 Type.GetType()

对于外部调用的动态库应用反射时要用到Assembly.LoadFile(),然后才是获取类型.执行方法等;当用反射创建当前程序集中对象实例或执行某个类下静态方法时只需通过Type.GetType("类的完整名"). Type.GetType(sClassPath,sAssembly) actually translates to Assembly.Load(sAssembly).GetType(sClassPath). 原文地址:https://www.cnblogs.com/sunn

Atitit.跨语言反射api 兼容性提升与增强 java c#。Net  php  js

Atitit.跨语言反射api 兼容性提升与增强 java c#.Net  php  js 1. 什么是反射1 1.1.       反射提供的主要功能:2 1.2.       实现反射的过程:2 2. 类反射中所必须的类: 的类反射所需要的类并不多,它们分别是:Field.Constructor.Method.Class.Object,2 3. . 反射的用处3 3.1. 可视化 3 3.2. 系统的灵活性.可扩展性 3 3.3. Json xml序列化3 3.4. 函数指针3 3.5. R

javascript fetch 跨域请求时 session失效问题

javascript 使用fetch进行跨域请求时默认是不带cookie的,所以会造成 session失效. fetch(url, { method: 'POST', credentials: 'include', headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, body: JSON.stringify({ data: options.data }) }) credentials: 'include' 可以是f

MyBatis 插入时返回刚插入记录的主键值

MyBatis 插入时返回刚插入记录的主键值 一.要求: 1.数据库表中的主键是自增长的,如:id: 2.获取刚刚插入的记录的id值: 二.源代码: 1.User.java 1 package cn.com.zfc.model; 2 3 public class User { 4 5 private Integer id; 6 private String name; 7 private String password; 8 9 public Integer getId() { 10 retur