• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > 如何利用反射构建元数据查看器

如何利用反射构建元数据查看器

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了元数据查看,查看照片元数据,查看exif元数据信息,0.00元查看账单,envi查看像元值等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

原理比较简单,引入System.Reflection命名空间,利用反射查看某种Type下的方法,属性,字段和支持的接口等。

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                Console.WriteLine("Please input a type:");
                string typeStr = Console.ReadLine();

                if (typeStr == "exit" || typeStr == "quit")
                    break;

                try
                {
                    Type type = Type.GetType(typeStr);
                    ListFields(type);
                    ListMethods(type);
                    ListInterfaces(type);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("It is not a valid type!");
                }
            }

        }

        #region Methods
        public static void ListFields(Type type)
        {
            Console.WriteLine("******** Fields: ********");
            //foreach (FieldInfo item in type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Default))
            foreach (FieldInfo item in type.GetFields())
            {
                Console.WriteLine("->" + item.Name);
            }
            Console.WriteLine("");
        }

        public static void ListMethods(Type type)
        {
            Console.WriteLine("******** Methods: ********");
            //foreach (var item in type.GetMethods(BindingFlags.Default | BindingFlags.Public | BindingFlags.Static | BindingFlags.NonPublic))
            var methodInfo = type.GetMethods().Select(m => m.Name).Distinct();
            foreach (var item in methodInfo)
            {
                Console.WriteLine("->" + item);
            }
            Console.WriteLine("");
        }

        public static void ListInterfaces(Type type)
        {
            Console.WriteLine("******** Interfaces: ********");
            foreach (var item in type.GetInterfaces())
            {
                Console.WriteLine("->" + item.Name);
            }
            Console.WriteLine("");
        }

        public static void ListProperties(Type type)
        {
            Console.WriteLine("******** Properties: ********");
            foreach (var item in type.GetProperties())
            {
                Console.WriteLine("->" + item.Name);
            }
            Console.WriteLine("");
        }
        #endregion

    }

}
</div>
测试case 1:

******** Methods: ********
->CompareTo
->Equals
->GetHashCode
->ToString
->Parse
->TryParse
->GetTypeCode
->GetType

******** Interfaces: ********
->IComparable
->IFormattable
->IConvertible
->IComparable`1
->IEquatable`1
</div>
测试case 2:

******** Methods: ********
->Acos
->Asin
->Atan
->Atan2
->Ceiling
->Cos
->Cosh
->Floor
->Sin
->Tan

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何利用反射构建元数据查看器

相关文章

  • 2017-05-28C#组合模式实例详解
  • 2017-05-28C#探秘系列(一)——ToDictionary,ToLookup
  • 2017-05-28C#实现HTTP上传文件的方法
  • 2017-05-28C#远程发送和接收数据流生成图片的方法
  • 2017-05-28C# Bitmap 复制的小例子
  • 2017-05-28可替代log4j日志的c#简单日志类队列实现类代码分享
  • 2017-05-28实例详解C#正则表达式
  • 2017-05-28当用户退出点击浏览器后退仍可回到原来页面的解决方案
  • 2017-05-28js验证电话号码手机号码的正则表达式
  • 2017-05-28C#使用foreach循环遍历数组完整实例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#计算器编写代码
    • c# 可疑文件扫描代码(找到木马)(简)
    • 基于switch你可能不知道的一些用法
    • C#引用访问权限分析
    • C#控件命名规范汇总(超详细)
    • C#实现漂亮的数字时钟效果
    • C#微信公众号开发 微信事件交互
    • 用C#在本地创建一个Windows帐户(DOS命令)
    • C#实现闹钟AlarmClock实例代码
    • C#基础之匿名方法实例教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有