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.......");
        }
    }
  • 相关阅读:
    mybatis
    eclipse日志
    最大值与最小值问题
    常见的缓存算法设计策略
    常用垃圾回收算法
    Java中对象的三种状态
    Java中的内存泄漏问题
    单例模式
    约瑟夫环问题
    矩形覆盖问题
  • 原文地址:https://www.cnblogs.com/ZhiXing-Blogs/p/7380649.html
Copyright © 2011-2022 走看看