zoukankan      html  css  js  c++  java
  • C#获取所有继承接口的子类

    先建一个类

    然后随便写一个方法

    void Start () 
        {
           var types = Assembly.GetCallingAssembly().GetTypes();
            var aType = typeof(A);
            Debug.Log(aType.FullName);
            List<A> ass = new List<A>();
            var typess = Assembly.GetCallingAssembly().GetTypes();  //获取所有类型
            foreach (var t in typess)
            {
                    Type[] tfs = t.GetInterfaces();  //获取该类型的接口
                    foreach (var tf in tfs)
                    {
                        if (tf.FullName == aType.FullName)  //判断全名,是否在一个命名空间下面
                        {
                            A a = Activator.CreateInstance(t) as A;
                            ass.Add(a);
                        }
                    }
            }
            Debug.Log(ass.Count);
            foreach (var item in ass)
            {
                item.a();  //调用所有继承该接口的类中的方法
            }
    
        }

    然后在随便建几个类

    namespace Dd
    {
        interface A
        {
            void a();
        }
    }
    
    
    public class B : A
    {
    
        public void a()
        {
            Debug.Log("B....");
        }
    }
    
    
    public class C: A
    {
    
        public void a()
        {
            Debug.Log("C.....");
        }
    }
    
    
    public class D : A
    {
    
        public void a()
        {
            Debug.Log("D.......");
        }
    }
  • 相关阅读:
    SettingWithCopyWarning
    统计运算
    数据清洗
    dataframe 索引
    那些拯救我的快捷键
    如何拒绝那些哭天抢地向你求救结果把你坑了的同事?
    Linux 笔记
    数据可视化:桑基图
    敏捷
    持续集成的概念
  • 原文地址:https://www.cnblogs.com/ZhiXing-Blogs/p/7380649.html
Copyright © 2011-2022 走看看