zoukankan
html css js c++ java
根据typeName获取Type较为完备的办法
前年还在开发.NET产品,我那时候编写一个C#脚本解释引擎,遇到一个问题是,Type.GetType()方法无法获取尚未装载类型。这些天,在阅读一些相关的代码时,得知了一种较为完整的方法,共享如下:
internal
static
Type FindTypeInCurrentDomain(
string
typeName)
{
Type type
=
null
;
//
如果该类型已经装载
type
=
Type.GetType(typeName);
if
(type
!=
null
)
{
return
type;
}
//
在EntryAssembly中查找
if
(Assembly.GetEntryAssembly()
!=
null
)
{
type
=
Assembly.GetEntryAssembly().GetType(typeName);
if
(type
!=
null
)
{
return
type;
}
}
//
在CurrentDomain的所有Assembly中查找
Assembly[] assemblyArray
=
AppDomain.CurrentDomain.GetAssemblies();
int
assemblyArrayLength
=
assemblyArray.Length;
for
(
int
i
=
0
; i
<
assemblyArrayLength;
++
i)
{
type
=
assemblyArray[i].GetType(typeName);
if
(type
!=
null
)
{
return
type;
}
}
for
(
int
i
=
0
; (i
<
assemblyArrayLength);
++
i)
{
Type[] typeArray
=
assemblyArray[i].GetTypes();
int
typeArrayLength
=
typeArray.Length;
for
(
int
j
=
0
; j
<
typeArrayLength;
++
j)
{
if
(typeArray[j].Name.Equals(typeName))
{
return
typeArray[j];
}
}
}
return
type;
}
查看全文
相关阅读:
7. Spring验证、数据绑定和类型转换
J2EE应用与移动互联网-写在前头
IT基础设施资源的实践----写在前头
JavaScript随笔记(一)基础概念以及变量类型
js函数表达式
js面形对象(2)
js面向对象
viPlugin安装破解
Ubuntu12.04 使用中遇到的问题
关于sizeof
原文地址:https://www.cnblogs.com/jobs/p/22200.html
最新文章
Java小知识点
用脑图画思维导图
git的工作流程(分支合并)
居中的六种方法
使用内联函数的一个问题
C++中的常量定义
单一出口原则
C++语言中的四种类型转换
编程是一门实践技能,积极动手实验常有意外的收获
感受数据结构的魅力:记一次查找性能优化
热门文章
《Clean Code》一书回顾
小论“Boolean参数作为入参”的函数
C++中的对象初始化
制作函数模板静态库
PXE Server 安装配置( PXE 和 Kickstart 无人值守安装 CentOS Linux 操作系统)
KVM的网络Networking-qemu-kvm和openvswitch原型环境部署和基本测试 (3)
创建虚拟机-qemu-kvm和openvswitch原型环境部署和基本测试 (2)
qemu-kvm和openvswitch安装部署-qemu-kvm和openvswitch原型环境部署和基本测试 (1)
NATS协议
Spring MVC表单上传场景下的验证
Copyright © 2011-2022 走看看