zoukankan      html  css  js  c++  java
  • 【学步者日记】C#反射中NonPublic和Instance需要一起使用

    完整链接请看:

    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");
            }
        }
    }
    ▲代码结束

  • 相关阅读:
    第四章、Vue组件
    第三章、Vue实例
    第二章、Vue指令
    Python练习实例012
    Python练习实例011
    Python练习实例010
    Python练习实例009
    Python练习实例008
    Python练习实例007
    Python练习实例006
  • 原文地址:https://www.cnblogs.com/JackSamuel/p/9672600.html
Copyright © 2011-2022 走看看