zoukankan      html  css  js  c++  java
  • 通过反射得到类型的所有成员

    下面代码演示了如何通过反射技术得到某个类型的所有成员。需要注意的是,默认情况下,GetMembers方式是只能读取公有成员的,如果需要读取所有的成员,则需要用下面的方式

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Reflection;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                Type t = typeof(Employee);
    
    
                Console.WriteLine();
                //下面的方法打印所有的Member
                Console.WriteLine("所有公有成员");
                foreach (var item in t.GetMembers(BindingFlags.Public|BindingFlags.NonPublic|BindingFlags.Instance))
                {
                    if (item.MemberType.ToString() == "Field")
                    {
                        FieldInfo field = (FieldInfo)item;
                        Console.WriteLine(
                            "{0}{1}{2}",
                            field.Name.PadRight(30),
                            string.Format("Field({0})", field.FieldType.ToString()).PadRight(30),
                            field.FieldType.IsValueType);
                    }
                    else
                    {
    
                        Console.WriteLine(
                            "{0}{1}{2}",
                            item.Name.PadRight(30),
                            item.MemberType.ToString().PadRight(30),
                            item.GetType().IsValueType
                            );
                    }
                }
    
    
    
                Console.Read();
            }
        }
    
        class Employee {
            public string publicField;
            private int privateField;
    
            internal int internalField;
            protected int protectedField;
    
    
            public string Name { get; set; }
    
            public void SomeMethod() { }
            private void SomeMethod2() { }
    
            public event EventHandler SomeEvent;
    
            public static int staticField;
    
        }
    }
    

    image

  • 相关阅读:
    随笔
    梨花落(短篇小说)
    javascript中的apply,call,bind详解
    js中this的指向问题
    你若安好,便是晴天
    gulp
    图标
    normalize.css
    git bash和toritoise客户端结合使用
    云计算基础知识
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1690579.html
Copyright © 2011-2022 走看看