完整链接请看:

http://note.youdao.com/noteshare?id=f378d9a414e46893b0e300b017ed3655

————————————————————————

 
如果在 BindingFlag 中使用 NonPublic/Public 时必须同时(我在看别人的教程时候并没有强调同时)使用 Static/Instance 否则将会返回null。
 
参考代码
▼代码开始
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace DreamSchool_LRNCS
{
    class Program
    {
        private void fun()
        {
            Console.Write("ds_fun");
 
        }
 
        static void Main(string[] args)
        {
            AA.C1 newC1Instance = new AA.C1();
            var funM = newC1Instance.GetType().GetMethod("fun", System.Reflection.BindingFlags.NonPublic| System.Reflection.BindingFlags.Instance);
            object[] para = { };
            if(funM==null)
            {
                Console.Write("error, funM is null");
            }
            else
            funM.Invoke(newC1Instance, para);
            Console.Read();
        }
    }
}
 
namespace AA
{
    public class C1
    {
        private void fun()
        {
            Console.Write("C1 fun");
        }
    }
}
namespace BB
{
    public class C2
    {
        public void fun()
        {
            Console.Write("c2 fun");
        }
    }
}
▲代码结束

【学步者日记】C#反射中NonPublic和Instance需要一起使用的更多相关文章

  1. C#中 反射中的Assembly(装载程序集):

    反射中的Assembly(装载程序集):可以通过Assembly的信息来获取程序的类,实例等编程需要用到的信息.  String assemblyName = @"NamespaceRef& ...

  2. 使用C#反射中的MakeGenericType函数,来为泛型方法和泛型类指定(泛型的)类型

    C#反射中的MakeGenericType函数可以用来指定泛型方法和泛型类的具体类型,方法如下面代码所示这里就不多讲了,详情看下面代码一切就清楚了: using System; using Syste ...

  3. java反射中Method类invoke方法的使用方法

    package com.zsw.test; import java.lang.reflect.Method;import java.lang.reflect.InvocationTargetExcep ...

  4. JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别

    JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别   关于获取类的字段有两种方式:getFields()和getDeclaredFields().我们先来 ...

  5. 反射中Class.forName()和classLoader的区别

    搞清楚两者之间区别前,我们来了解下类加载过程. 一.类加载过程 1.加载 通过一个类的全限定名来获取定义此类的二进制字节流. 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构. 在内存中生 ...

  6. 在Java的反射中,Class.forName和ClassLoader的区别

    前言 最近在面试过程中有被问到,在Java反射中Class.forName()加载类和使用ClassLoader加载类的区别.当时没有想出来后来自己研究了一下就写下来记录一下. 解释 在java中Cl ...

  7. 反射中的BindingFlags

    不指定绑定标志  BindingFlags.Default 表示忽略 name 的大小写,不应考虑成员名的大小写   BindingFlags.IgnoreCase 只应考虑在所提供类型的层次结构级别 ...

  8. Java反射中的getClass()方法

    Java反射学习 所谓反射,可以理解为在运行时期获取对象类型信息的操作.传统的编程方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下,编程人员可以动态获取这些信息,从而编写更加具有可移植性的代 ...

  9. 反射中getMethods 与 getDeclaredMethods 的区别

    public Method[] getMethods()返回某个类的所有公用(public)方法包括其继承类的公用方法,当然也包括它所实现接口的方法.public Method[] getDeclar ...

随机推荐

  1. MoreEffectiveC++Item35(效率)(条款16-24)

    条款16 谨记80-20法则 条款17 考虑使用 lazy evaluation(缓释评估) 条款18 分期摊还预期的计算成本 条款19 了解临时对象的来源 条款20 协助完成"返回值的优化 ...

  2. Linux系统在启动过程中内核文件丢失的解决方法

    在/boot目录下有两个重要的文件,分别是: vmlinuz-3.10.0-123.el7.x86_64         内核文件 initamfs-3.10.0-123.el7.x86_64.img ...

  3. 将glassfish 添加到服务中 ,自启

    将glassfish 添加到服务中 ,自启. 命令: sc create wuziServer binPath= D:\wuzi\wuzi-start.bat start= auto

  4. webpack 分析

    编译后 自动打开浏览器 可视 //npm install --save-dev webpack-bundle-analyzer //webpack.base.conf.js const BundleA ...

  5. sql server 插入用户

    '创建登陆用户 use master create login [mashenghao] with password='kline',DEFAULT_DATABASE=[kchnetdb], DEFA ...

  6. 为什么要重写toString()方法和hashcode()方法

    一.toString(): 在Object类里面定义toString()方法的时候返回的对象的哈希code码,这个hashcode码不能简单明了的表示出对象的属性.所以要重写toString()方法. ...

  7. vue中父子组件值的传递

    父传子 父组件:

  8. oracle 未明确定义错误

    select sysuser1.* from (select sysuser2.*, rownum rownum_temp from (select yycgdmx.id yycgdmxid, -- ...

  9. 【示例代码】 Tuple<T> Func<T>

    using System; using System.Math; namespace PiWithMonteCarlo { /// <summary> /// Trivial, synch ...

  10. 【解题报告】13级个人结业赛(二) ——动(dou)态(bu)规(hui)划(zuo)专场

    额.果然是动(dou)态(bu)规(hui)划(zuo)专场... A: 翻倍序列 dp[i][j]表示第i个位置是j的情况的个数那么dp[i][j]=∑dp[i-1][k]   (j%k==0)初始 ...