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;
}
查看全文
相关阅读:
Django models 中导入重复数据的解决办法
Python3 re
Django 从请求到相应的过程
Django session global配置
CountDownLatch和CyclicBarrier用法及区别讲解
npm
go 实现爬虫
go,redis实现订阅和发布
使用Network Emulator Toolkit工具模拟网络丢包测试
vue+element 使用多个el-select绑定的值为同一个值
原文地址:https://www.cnblogs.com/jobs/p/22200.html
最新文章
Java集合之Collection
Java异常处理的两种方式以及自定义异常的使用方法
椭圆曲率算法不同曲线的安全性
Java基础-面向对象(一)
Java基础-数组
NFS服务器搭建与配置
NFS双机热备高可用环境
多线程、异步
scala高阶函数之option
scala高阶函数之枚举类
热门文章
scala高阶函数之匹配功能
scala高阶函数之map
个人未巩固知识点,各种收集(持续更新)
解决0.5px转换成rem时在部分机型上面的兼容显示
jenkins.war 安装版的jenkins升级
jenkins 反向代理配置
Jenkins 控制台输出显示颜色
Jenkins 拉取git代码超时处理
Django 删表重建
Django ORM get_or_create
Copyright © 2011-2022 走看看