ioriliao 的博客
无极生太极, 太极生两仪, 两仪生四象, 四象生八卦, 八卦定吉凶, 吉凶定大业.
博客园
::
首页
::
新随笔
::
联系
::
订阅
::
管理
::
146 随笔 :: 0 文章 :: 398 评论 :: 0 引用
与大家分享下反射技术
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Reflection;
//
和大家分享一下自己在工作中用到反射技术的一些简单应用
//
此案例应用场景是这个样子的:
//
在我的项目中有很多的DLL, 每个DLL都有一个Mark属性,是用
//
来标识这个DLL作用的中文名称来的,因为我要知道这个DLL是作
//
什么用的,那么就只有取得其Mark属性.
//
此紧紧作为一个示例
..
//
备注:我用到了c#2008的新特性,关键字var,若不明白,请msdn.
namespace
ReflectionTest
{
class
Program
{
static
void
Main(
string
[] args)
{
Console.WriteLine(
"
请输入DLL文件的路径
"
);
var pathFile
=
Console.ReadLine();
//
载入程序集
var myAssembly
=
Assembly.LoadFrom(@pathFile);
//
取得程序集myAssembly的所有类型
var types
=
myAssembly.GetTypes();
//
遍历类型,以获得类开的属性
foreach
(var type
in
types)
{
//
获得类型属性集
var props
=
type.GetProperties();
//
实例化此类型
var typeFlection
=
System.Activator.CreateInstance(type);
foreach
(var prop
in
props)
{
//
属性名称是否是"Mark"
if
(prop.Name
==
"
Mark
"
)
{
//
取得属性值
var obj
=
prop.GetValue(typeFlection,
null
);
var MarkValue
=
obj;
Console.WriteLine(
"
Mark的值为:{0}
"
, MarkValue);
}
}
}
Console.ReadLine();
}
}
}
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace
cls1
{
public
class
Class1
{
private
string
m1;
public
Class1()
{
m1
=
"
cls1.Class1
"
;
}
public
string
Mark
{
get
{
return
m1; }
}
}
public
class
Class2
{
private
string
m1;
public
Class2()
{
m1
=
"
cls1.Class2
"
;
}
public
string
Mark
{
get
{
return
m1; }
}
}
public
class
Class3
{
private
string
m1;
public
Class3()
{
m1
=
"
cls1.Class3
"
;
}
public
string
Mark
{
get
{
return
m1; }
}
}
}
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace
cls2
{
public
class
Class1
{
private
string
m1;
public
Class1()
{
m1
=
"
cls2.Class1
"
;
}
public
string
Mark
{
get
{
return
m1; }
}
}
public
class
Class2
{
private
string
m1;
public
Class2()
{
m1
=
"
cls2.Class2
"
;
}
public
string
Mark
{
get
{
return
m1; }
}
}
public
class
Class3
{
private
string
m1;
public
Class3()
{
m1
=
"
cls2.Class3
"
;
}
public
string
Mark
{
get
{
return
m1; }
}
}
}
posted on 2008-07-04 14:18
太极
阅读(258)
评论(0)
编辑
收藏
所属分类:
C#
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
闪存
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
相关文章:
C#字符串分割
如何配置C#命令行编译器
C#下如何实现服务器+客户端的聊天程序
Microsoft .NET Pet Shop 4 架构与技术分析
FileInfo 复制文件 是否完成 如何判断 C#
C# 外网如何用TCP向内网传文件?
C# 来这里学习C#吧
C# 委托
相关链接:
所属分类的其他文章:
做了图形时钟程序.
用线画圆
一个假想
嘿嘿...让你们看看我优美地生成sql
反射出程序集的属性, 方法及事件.
编程语言:功能越强自由越少?
《中国青年报》:自主创新主要靠科技界的“小人物”来推动
浅谈Linq To Sql集成数据库语言的优劣
对C++和C#优缺点的分析
与大家分享下反射技术
最新IT新闻:
Google向Wine贡献更多代码
苹果创始人Steve Wozniak称iPod将被淘汰
福布斯:硅谷日子将更难过 谁下一个倒下
微软老矣 尚能赚否?
YouTube探索新赢利模式 开始售音乐、视频游戏
<
2008年7月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
公告
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
(7)
给我留言
查看留言
我参加的小组
创业交流
设计模式
.NET 3.x
AJAX
框架设计
随笔分类
(146)
asp.net(9)
(rss)
C#(36)
(rss)
C# Programmer's Handbook
(rss)
C/C++语言(17)
(rss)
CodeDom(3)
(rss)
Linq(4)
(rss)
Microsoft.Press.Introducing.Microsoft.LINQ(7)
(rss)
Python(3)
(rss)
VBA(1)
(rss)
XML(3)
(rss)
反射技术(5)
(rss)
框架(5)
(rss)
其它(43)
(rss)
人件集(8)
(rss)
我的平面设计作品(1)
(rss)
下载(1)
(rss)
随笔档案
(143)
2008年9月 (10)
2008年8月 (26)
2008年7月 (13)
2008年5月 (15)
2008年4月 (71)
2008年3月 (8)
相册
Me
积分与排名
积分 - 24563
排名 - 1749
最新评论
1. re: 烟瘾
抽上容易戒掉难啊~
--Sephil
2. re: 无意间看到的一个心理测试, 还不错.
前面没感觉出来准,后面越来越准,I服了YOU !!!!
--俊虎's blog
3. re: 本人有几本高清晰的C语言及数字电路设计的电子书,要的请留下Email.
OpenGL参考手册
C语言程序设计
C++Builder
麻烦楼主给来一份,非常感谢!juanzi--84@163.com
我这老下不下来,郁闷。
--juanzi
4. re: 本人有几本高清晰的C语言及数字电路设计的电子书,要的请留下Email.
OpenGL参考手册
C语言程序设计
C++Builder
麻烦楼主给来一份,非常感谢!juanzi--84@163.com
--juanzi
5. re: 我的linux 3D桌面
@81
呵呵。。。用的是gambas
。basic语言另一种衍生物.
还有realbasic也不错...
这两都是rad工具.
--太极
6. re: 我的linux 3D桌面
楼主图片上是什么开发工具?
--81
7. re: 做了图形时钟程序.
@yellowyu
不懂这个...请指教!谢谢!
--太极
8. re: 做了图形时钟程序.
从你的图上来看,好像没开启双缓冲哦,有的话,可能流畅些吧。。。。
--yellowyu
9. re: 微软:在中国不存在垄断
@丁学 asp.net. 我接给别人做的....自己不做... 呵呵... 丁老兄做web开发的吧...我到过你的博客很多都是关于web的. 我不会做web.一看我的博客就知道了...呵呵......
--太极
10. re: 微软:在中国不存在垄断
请问你的网站开发是asp还是asp.net还是PHP还是JSP还是其他什么还是什么都接?
--丁学
11. re: 用线画圆
@Elek Lee 呵呵...不是的... 我初学图形开发...这个是我要做个时钟程序的个热身运动. 晚点应该会做好了... 数学忘记得七七八八了...一边温习一边做...呵呵... ...
--太极
12. re: 用线画圆
雷达吗?
--Elek Lee
13. re: 微软:在中国不存在垄断
楼主的宣传 弓虽
--阿东hd
14. re: 微软:在中国不存在垄断
@丁学
呵呵...一般吧...
--太极
15. re: 嘿嘿...让你们看看我优美地生成sql
我觉得这样好像有点麻烦...
不过的确也是一种技巧..
:)
--Ss_Andy
16. re: 微软:在中国不存在垄断
博主的业务范围很宽啊
--丁学
17. re: 嘿嘿...让你们看看我优美地生成sql
这就是传说中的扩展方法?
看起来确实挺好看的。
--金色海洋(jyk)
18. re: 一个假想
不限制数量的泛型?不行的啊,只能用params指定某一类型的……
--Gray Zhang
19. re: 嘿嘿...让你们看看我优美地生成sql
@jeffrey_ji81
仁兄能否把我这代码改良改良然后发上来参考呢?
我做这之前没考虑到这些...我先前的出发点是演示
扩展方法的技巧.
--太极
20. re: 嘿嘿...让你们看看我优美地生成sql
虽然楼主提供了一个PARAMETERS静态方法,但是缺并没有定义ado.net 的Parameters对象,就是说如果我要预防SQL注入攻击,还要另外定义Parameters对象,如果我有很多个参数,...
--jeffrey_ji81
21. re: 嘿嘿...让你们看看我优美地生成sql
@LanceZhang
可否出示个例子看看...知道这回事...还没尝试过...
谢谢.
--太极
22. re: 嘿嘿...让你们看看我优美地生成sql
lz知道什么是运算符重载吗?比你这要cool
:)
--LanceZhang
23. re: 嘿嘿...让你们看看我优美地生成sql
1.显而易见的好处是可以使用.net的智能感知.有时你可能会把select 写成 slect等等错误的字串. 2.代码看上去更直观.你不觉得么? 3.减少错误.(当前,要确保你的类没有错作为前提);...
--太极
24. re: 嘿嘿...让你们看看我优美地生成sql
这样麻烦得很。有什么好处?
--时间太快
25. re: 嘿嘿...让你们看看我优美地生成sql
@jeffrey_ji81
没有...这方面的知识我还是很贫乏,请指点之...
谢谢!
--太极
26. re: 嘿嘿...让你们看看我优美地生成sql
请问楼主,你有没有考虑sql注入攻击呢?
--jeffrey_ji81
27. re: 嘿嘿...让你们看看我优美地生成sql
@JasonYi
在研究这个中...
--太极
28. re: 嘿嘿...让你们看看我优美地生成sql
如果把表的每个字段也能映射出来就更好了:)
--JasonYi
29. re: ioriliao博主简介
哈哈,阿艺的招牌式。
--吴
30. 垃圾Firefox,流氓软件,装上了卸载不了!
垃圾Firefox,流氓软件,装上了卸载不了!
--dongdong3
31. re: 在某论坛看到某人的狂言(C语言也太简单了吧,现在的程序员素质真是太差了)
@辰
地址在此:
呵呵..
--太极
32. re: 在某论坛看到某人的狂言(C语言也太简单了吧,现在的程序员素质真是太差了)
<C程序设计>,竟然还要看了1个多月!! 不是几天就懂了的吗?学种语言也就几天 用好种语言就是几年的事情。 嘻嘻。LZ给个链接,让我去和那个老兄侃侃。...
--辰
33. re: 在某论坛看到某人的狂言(C语言也太简单了吧,现在的程序员素质真是太差了)
其实最“简单”的语言,往往却是最难的
--小笨狗
34. re: 在某论坛看到某人的狂言(C语言也太简单了吧,现在的程序员素质真是太差了)
呵呵,当笑话看嘛!!
谭那个只能说带入门的,真正的东西只有编了才知道!
--西就东城
35. re: 在某论坛看到某人的狂言(C语言也太简单了吧,现在的程序员素质真是太差了)
真是晕,谭浩强那本书只是给一点编程经验的人入门用的,他们学起来肯定有难度,就跟让一两岁的小孩跑100米一样,我们现在多多少少有了一些编程基础就是跟十几岁的人跑100一样,你说看那本书还难吗?如果你还说...
--凌军
36. re: 盖茨依然坐镇微软搜索团队 要与谷歌争高下
@菲琳之莎
微软败了吗?
--future001
37. re: 在某论坛看到某人的狂言(C语言也太简单了吧,现在的程序员素质真是太差了)
汗了 , 谭浩强老先生那本书 连入门都只是入了一半 ,看过
《c 专家编程》 《c缺陷与陷阱》以后 才有资格说自己学过c 。
o my god ,天地一下还真是什么芙蓉都有 ……
--戏水
38. re: 在某论坛看到某人的狂言(C语言也太简单了吧,现在的程序员素质真是太差了)
看这种帖子时一笑而过就好.
--小猪凯
39. re: 在某论坛看到某人的狂言(C语言也太简单了吧,现在的程序员素质真是太差了)
会C语言编程和用C语言写出SQL Server就和会写中文和写出《围城》一样,所以这样的帖子还是无视比较好
--丁丁
40. re: 在某论坛看到某人的狂言(C语言也太简单了吧,现在的程序员素质真是太差了)
说的没错啊,C语言不难啊。
--碎蜂
阅读排行榜
1. 人件集之前言(1502)
2. 本人有几本高清晰的C语言及数字电路设计的电子书,要的请留下Email.(1220)
3. 再次放送12本相关程序设计的好书.要的请留言下Email(高清晰的文字版的书).(422)
4. c#中的类型转换详解(310)
5. 在某论坛看到某人的狂言(C语言也太简单了吧,现在的程序员素质真是太差了)(284)
Powered by:
博客园
Copyright © 太极