完整链接请看:

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. (转)MapReduce Design Patterns(chapter 2 (part 3))(四)

    Inverted Index Summarizations Pattern Description 反向索引模式在MapReduce分析中经常作为一个例子.我们将会讨论我们要创建的term跟标识符之间 ...

  2. 图像和流媒体 -- Sapera 安装遇到的问题

    一.下载安装包 参看:Genie Nano M1930-NIR 点击软件及例程下载 二.安装遇到的问题 (1)Installation directory must be on a local har ...

  3. Gradle2.0用户指南翻译——第二章. 概述

    翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc本文翻译所在分支:https://github.com/msdx/gradledoc/tree/2 ...

  4. objc/runtime.h 相关

    Objecitve-C的重要特性是Runtime(运行时),在Interacting with the Runtime(交互运行)中,运行时函数部分,苹果给出了/usr/lib/libobjc.A.d ...

  5. openssl编译出错解决

    tar -jxvf trafficserver-3.0.2.tar.bz2 ./configure --prefix=/usr/install/trafficserver --with-user=ca ...

  6. SQL 添加删除列

    --添加一列 alter table TableName add columnName columnType --删除表中的一列 alter table TableName drop column c ...

  7. 实现Python代码发送邮件

    import smtplib from email.mime.text import MIMEText from email.utils import formataddr msg = MIMETex ...

  8. I.MX6 I2C DS1337 disable square-wave output

    linux I2C DS1337 disable square-wave output \\\\\\\\\\\-*- 目录 -*-////////// | 一.DS1337访问寄存器说明: | 二.c ...

  9. C# Post发送数据返回页面结果

    public string GetPage(string posturl, string postData) { Stream outstream = null; Stream instream = ...

  10. Jmter-Test Fragment、Include Controller和Module Controller

    Test Fragment--测试片段 The Test Fragment is used in conjunction with the Include Controller and Module ...