zoukankan
html css js c++ java
C#反射实例讲解
创建用于反射使用的DLL
新建一个C#类库项目,拷贝源代码如下,编译生成DLL(假如DLL的文件名是TestReflect.dll)
using
System;
namespace
Webtest
{
/**/
/**/
/**/
///
<summary>
///
ReflectTest 的摘要说明。
///
</summary>
public
class
ReflectTest
{
public
ReflectTest()
{}
public
string
WriteString(
string
s)
{
return
"
欢迎您,
"
+
s;
}
/**/
/**/
/**/
///
<summary>
///
dsajkjflasjdfalksdjfaskfd
///
</summary>
///
<param name="s"></param>
///
<returns></returns>
public
static
string
WriteName(
string
s)
{
return
"
欢迎您光临,
"
+
s;
}
public
string
WriteNoPara()
{
return
"
您使用的是无参数方法
"
;
}
}
}
2 应用于反射的例子
在ASPNET页面中加入以下函数:
public
void
test1()
{
System.Reflection.Assembly ass;
Type type ;
object
obj;
try
{
ass
=
System.Reflection.Assembly.LoadFile(
@"
d:\TestReflect.dll
"
);
type
=
ass.GetType(
"
Webtest.ReflectTest
"
);
//
必须使用名称空间+类名称
System.Reflection.MethodInfo method
=
type.GetMethod(
"
WriteString
"
);
//
方法的名称
obj
=
ass.CreateInstance(
"
Webtest.ReflectTest
"
);
//
必须使用名称空间+类名称
string
s
=
(
string
)method.Invoke(obj,
new
string
[]
{
"
jianglijun
"
}
);
//
实例方法的调用
Response.Write(s
+
"
<br>
"
);
method
=
type.GetMethod(
"
WriteName
"
);
//
方法的名称
s
=
(
string
)method.Invoke(
null
,
new
string
[]
{
"
jianglijun
"
}
);
//
静态方法的调用
Response.Write(s
+
"
<br>
"
);
method
=
type.GetMethod(
"
WriteNoPara
"
);
//
无参数的实例方法
s
=
(
string
)method.Invoke(obj,
null
);
Response.Write(s
+
"
<br>
"
);
method
=
null
;
}
catch
(Exception ex)
{
Response.Write(ex
+
"
<br>
"
);
}
finally
{
ass
=
null
;
type
=
null
;
obj
=
null
;
}
}
查看全文
相关阅读:
this指针是什么?
C++多态实现原理
面试题2:实现Singleton模式
面试题1:赋值运算符函数
1.Two Sum
朴素贝叶斯
K近邻法
感知机
数据类型、用户交互、赋值运算
蓝牙技术概述
原文地址:https://www.cnblogs.com/engine1984/p/863581.html
最新文章
mvc导出excel记录
初探缓存
灰度发布(转载)
linux内核结构
smartctl工具应用(转载整理)
FIO工具常用参数
UNIX V6内核源码剖析——进程
UNIX V6内核源码剖析——unix v6 全貌
linux inotifywait 下监控是否有IO
第一篇 Charles的配置及相关使用
热门文章
第十篇 Python的字符串格式化
第九篇 Python数据类型之集合
第八篇Python基本数据类型之列表、元组与字典
怎么使用pipenv管理你的python项目
第五篇Python基本数据类型
常见Http协议响应码
HTTPS和SSL详解
常见的登录测试点
构造函数和析构函数能是虚函数吗?
成员函数和普通函数的区别
Copyright © 2011-2022 走看看