CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

编程找出C#中所有的类、接口、枚举、结构的相关信息(高手请进)

楼主lin6234123456(青古)2006-11-10 18:56:23 在 .NET技术 / C# 提问

编程找出C#中所有的类、接口、枚举、结构的相关信息(可写入一个文件),结于枚举要列出其枚举值(比如名字空间SYSTEM下到底有多少个枚举?,其枚举值是?),注意要用编程的方法!!! 问题点数:100、回复次数:31Top

1 楼cho__cho(业精于勤,慌于嘻!行成于思,毁于随!)回复于 2006-11-10 19:06:20 得分 1

 
  sj  
   
  空了做Top

2 楼lin6234123456(青古)回复于 2006-11-10 19:12:27 得分 0

只是System下也行,要代码.(目的:学习和好喜!!)Top

3 楼Csharp110(~泰山~)回复于 2006-11-10 19:23:40 得分 1

学习中,帮顶吧!Top

4 楼lin6234123456(青古)回复于 2006-11-10 19:36:19 得分 0

请高手解答一下,说不可能也可以,要把条件改小也行,请大家相互转告!!Top

5 楼free_wang()回复于 2006-11-10 19:38:53 得分 1

upTop

6 楼lin6234123456(青古)回复于 2006-11-10 19:51:18 得分 0

我准备再增加100分(可没有权限),这是个宏观题,说不定要去问微软!!  
  我要得到这样的格式:  
  名称       类别(类、接口、结构、枚举、枚举值) 继承于  所属名字空间 其他说明Top

7 楼lin6234123456(青古)回复于 2006-11-10 19:53:31 得分 0

就是能从VS2005的智能提示中导出也不错!!(纯业余爱好!!!)Top

8 楼lin6234123456(青古)回复于 2006-11-10 20:52:09 得分 0

自己顶!知道的怕不多!Top

9 楼balenoww(名花虽有主,锄头更无情,只要锄头挥得好,哪有墙角挖不倒!)回复于 2006-11-10 23:27:44 得分 1

实力不够,也不想做无用功Top

10 楼lin6234123456(青古)回复于 2006-11-11 09:28:09 得分 0

自己顶!不让沉Top

11 楼oolongTea(顶者)回复于 2006-11-11 09:33:32 得分 2

用反射试试Top

12 楼lin6234123456(青古)回复于 2006-11-11 09:43:53 得分 0

楼上的,请你试一试,然后告诉一声:可行不,本人是业余爱好,  
  我要得到这样的格式:  
  名称       类别(类、接口、结构、枚举、枚举值) 继承于  所属名字空间 其他说明  
  Top

13 楼zwcscq()回复于 2006-11-11 11:08:39 得分 2

加特征,用反射Top

14 楼raozhiven(朗屹)回复于 2006-11-11 12:06:05 得分 50

//这里加载的一   System.Object   所在的程序集,你也可以指定其它  
  System.Reflection.Assembly   assembly   =   typeof(object).Assembly;  
  Type[]   types   =   assembly.GetTypes();  
  foreach   (Type   type   in   types)  
  {  
          //仅   System   命名空间的限制  
          if   (type.Namespace   ==   null   ||   type.Namespace   !=   "System")  
          {  
                  continue;  
          }  
   
          if   (type.IsEnum)  
          {  
                  //列出枚举类型中的所有值  
                  Array   vals   =   Enum.GetValues(type);  
                  foreach   (object   val   in   vals)  
                  {  
                          Console.WriteLine("Type:   {0}   -->   {1}",   type,   val);  
                  }  
          }  
  }  
  Console.Read();  
   
  Top

15 楼lin6234123456(青古)回复于 2006-11-11 12:37:36 得分 0

好,我先测试一下,请继续!!Top

16 楼lin6234123456(青古)回复于 2006-11-11 12:43:06 得分 0

不错(已找出System.Object的枚举),System.Object下所有的类?  
  Top

17 楼lin6234123456(青古)回复于 2006-11-11 12:55:01 得分 0

以下找出System下的Class  
  System.Reflection.Assembly   assembly   =   typeof(object).Assembly;  
                          Type[]   types   =   assembly.GetTypes();  
                          foreach   (Type   type   in   types)  
                          {  
                                  //仅   System   命名空间的限制  
                                  if   (type.Namespace   ==   null   ||   type.Namespace   !=   "System")  
                                  {  
                                          continue;  
                                  }  
   
                                  if   (type.IsClass)  
                                  {  
                                          //列出枚举类型中的所有值  
                                    //     Array   vals   =   Enum.GetValues(type);  
                                  //         foreach   (object   val   in   vals)  
                                    //       {  
                                          Console.WriteLine("Class:   {0}   ",   type);  
                                      //     }  
                                  }  
                          }  
                          Console.Read();Top

18 楼zerg318()回复于 2006-11-11 13:31:04 得分 1

不能自己顶了把   ^_^   !!Top

19 楼zlkingdom(风之悲伤)回复于 2006-11-11 13:35:14 得分 2

肯定是要用反射的,但是反射好象取不到这么多的细节特征Top

20 楼raozhiven(朗屹)回复于 2006-11-11 13:39:01 得分 0

怎么取不到这么多的细节特征?  
  Reflector就是用的反射,连源代码都能看得一清二楚。Top

21 楼icdbow(旺仔)回复于 2006-11-11 13:45:18 得分 2

用反射,都可以的,我做过了,还可以反射出其他应用程序的类.Top

22 楼lin6234123456(青古)回复于 2006-11-11 13:55:02 得分 0

其实回答这个问题去问Reflector的作者是最清楚不过了!(幽默一下)  
  谁会用"反射"能回答本人这个问题(VS2005中的名称       类别(类、接口、结构、枚举、枚举值) 继承于  所属名字空间 其他说明))  
  请继续顶!raozhiven(朗屹)写个详细点得!  
  Top

23 楼zerohk(零度空间)回复于 2006-11-11 14:12:08 得分 2

用反射Top

24 楼arest(凄凄迷人)回复于 2006-11-11 14:12:54 得分 0

没搞过这么复杂的反射。。帮你顶一下。。呵呵Top

25 楼lin6234123456(青古)回复于 2006-11-11 15:39:18 得分 0

继续顶!Top

26 楼aling9801()回复于 2006-11-11 16:10:31 得分 35

以下找出System下的Class  
  System.Reflection.Assembly   assembly   =   typeof(object).Assembly;  
                          Type[]   types   =   assembly.GetTypes();  
                          foreach   (Type   type   in   types)  
                          {  
                                 
                                  if   (type.IsClass)  
                                  {  
                                          //列出枚举类型中的所有值  
                                    //     Array   vals   =   Enum.GetValues(type);  
                                  //         foreach   (object   val   in   vals)  
                                    //       {  
                                          Console.WriteLine("Class:   {0}   ",   type);  
                                      //     }  
                                  }  
                          }  
                          Console.Read();  
   
  查找一下Assembly的方法.Top

27 楼lin6234123456(青古)回复于 2006-11-11 16:17:04 得分 0

问题已搂近答案,准备明天结贴.大家再关注一下.Top

28 楼lin6234123456(青古)回复于 2006-11-11 17:19:02 得分 0

并没有想像的难!!Top

29 楼panjing123(Alma)回复于 2006-11-11 22:35:26 得分 0

我有个愚蠢的方法,用文件的形式查找字符串,查找cs文件下的所有的接口关键字,你们别笑我啊,这个是挺笨的方法Top

30 楼wuya2004()回复于 2006-11-12 11:02:03 得分 0

飘过!  
  很是实用!  
  谢谢!Top

31 楼zwcscq()回复于 2006-11-12 17:03:45 得分 0

你娃是怎么给分的哟...我给的是解决方案的核心意思,才给2分.....Top

相关问题

关键词

得分解答快速导航

  • 帖主:lin6234123456
  • cho__cho
  • Csharp110
  • free_wang
  • balenoww
  • oolongTea
  • zwcscq
  • raozhiven
  • zerg318
  • zlkingdom
  • icdbow
  • zerohk
  • aling9801

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo