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;
}
查看全文
相关阅读:
python的基础爬虫(利用requests和bs4)
R语言时间序列中的时间设置
PHP扩展开发(6)
PHP扩展开发(5)
kafka安装及Kafka-PHP扩展的使用
brew 更换国内源(镜像)
PHP扩展开发(4)
PHP扩展开发(3)-config.m4
PHP扩展开发(2)
PHP扩展开发(1)-创建基础框架
原文地址:https://www.cnblogs.com/jobs/p/22200.html
最新文章
springBoot 全局异常方式处理自定义异常 @RestControllerAdvice + @ExceptionHandler
Oracle高级函数篇之递归查询start with connect by prior简单用法
js中两个日期大小比较,获取当前日期,日期加减一天
ORA-00911: invalid character 错误解决集锦
TFS中如何排除Nuget的Packages文件夹
使用webapi实现windows本地用户管理
基于OAuth2.0的统一身份认证中心设计
ccentos 7下安装php5.6并使用nginx + php-fpm部署多个不同端口网站
微信公众号开发(二)--扫码绑定微信账号
微信公众号开发(一)--入门
热门文章
centos7下忘记mysql5.7密码
centos7下安装mysql5.7和jdk 1.8
centos7+nginx部署asp.net core mvc网站
6-13面试题目解析
6-12的一些基础的笔试题,基础很重要
bootstrap如何让dropdown menu按钮式下拉框宽度一致
元素水平垂直居中--分为行内元素和块级元素的情况
VS写HTML运行时提示--找不到IIS Express的问题
github展示作品
python批量修改某一文件夹下的所有文件名
Copyright © 2011-2022 走看看