zoukankan      html  css  js  c++  java
  • 反射怎样调用另外一个类的私有成员

     一个类的私有成员,本来是不可以给外部调用的。但是在某些特殊情况下,

    我们可能确实须要调用另一个类的私有成员,怎么办呢? 看下面的一个例子就明白了。

    要注意的是:尽量不要这么调有,因为,也许版本升级以后,别人就不再提供这个方法了。

     

    namespace 反射调用私有的成员

    {

        class Program

        {

            static void Main(string[] args)

            {

                Type type = typeof(Class1);

                object obj= Activator.CreateInstance(type);

     

                //调用类库中公有的方法用下面的方法就可以了,但是私有方法就不行了。

                MethodInfo mi= type.GetMethod("heihei");

                mi.Invoke(obj, null);

     

                //调用私有的方法只要加上两个参数就可以了

                MethodInfo mi2 = type.GetMethod("haha", BindingFlags.NonPublic| BindingFlags.Instance);

                mi2.Invoke(obj,null);

     

                Console.Read();

            }

        }

     

    public class Class1

        {

            public void heihei()

            {

                Console.WriteLine("say heihei");

            }

     

            private void haha()

            {

                Console.WriteLine("say haha");

            }

     

            public static void hello()

            {

                Console.WriteLine("say hello");

            }

    }

    }

  • 相关阅读:
    Spring中的BeanUtils与apache commons中的BeanUtils用法[1]
    C# rmi例子
    跨时钟域设计的一点总结
    FPGA跨时钟域异步时钟设计的几种同步策略-可编程逻辑-与非网
    关于FPGA异步时钟采样--结绳法的点点滴滴
    sigaction函数解析
    可重入函数
    SCHED_OTHER,SCHED_FIFO,SCHED_RR-intentness-ChinaUnix博客
    qt安装教程
    VS2013 平台下搭建 QT5.3 开发环境
  • 原文地址:https://www.cnblogs.com/La5DotNet/p/2435431.html
Copyright © 2011-2022 走看看