using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;namespace ConmonService
{class Program{/*获取某一个接口下面所有的子类*/static void Main(string[] args){/*找单个程序集里面某个接口下面所有的派生类*/{/*找到某个程序集ICreateDTOService里面所有的类*/Assembly assembly = Assembly.Load("ICreateDTOService");/*找到程序集里面所有的类*/Type[] types = assembly.GetTypes();/*子类容器*/List<Type> TypeList = new List<Type>();foreach (var item in types){/*找到目标接口下面所有的派生类*/if (item.GetInterface("ICreateDto") != null){TypeList.Add(item);}}/*获取完毕*/}/*找多个程序集[ICreateDTOService,ICreateDTOService.Demo1]里面的某个接口下面所有的派生类*/{List<Assembly> Assemblys = new List<Assembly>() {Assembly.Load("ICreateDTOService"),Assembly.Load("ICreateDTOService.Demo1")};List<Type> TypeList = new List<Type>();foreach (var AssemblyItem in Assemblys){TypeList.AddRange(AssemblyItem.GetTypes().Where(o => o.GetInterface("ICreateDto") != null).ToList<Type>());}}/*获取当前运行时引用的程序集中继承某个接口下面的派生类*/{List<Assembly> Assemblys = AppDomain.CurrentDomain.GetAssemblies().ToList<Assembly>();List<Type> TypeList = new List<Type>();foreach (var AssemblyItem in Assemblys){TypeList.AddRange(AssemblyItem.GetTypes().Where(o => o.GetInterface("ICreateDto") != null).ToList<Type>());}}}}
}

转载于:https://www.cnblogs.com/wangbin0582/p/7423808.html

.NET开发设计模式-获取某个接口下面所有的派生类相关推荐

  1. Java代码示例: 使用reflections工具类获取某接口下所有的实现类

    pom依赖 <dependency><groupId>org.reflections</groupId><artifactId>reflections& ...

  2. java 获取所有实现类_Java动态获取实现某个接口下所有的实现类对象集合

    Java动态获取实现某个接口下所有的实现类对象集合 最近有个需求,我需要获取所有同一类型的定时任务的对象,并自动执行. 我想的方案是:直接获取某个接口下面所有的实现类的对象集合,方便以后只需要 实现这 ...

  3. unity 继承了 获取_Unity游戏开发——设计模式概述

    0.前言 这一系列的文章其实应该算作几本书和一些资料总结的笔记,是有关设计模式与游戏开发之间的应用.笔者将阅读学习过程中的思考和总结记录下来,也希望能提供给同样在这方面有疑问的朋友一些帮助. 1.设计 ...

  4. php网页抓取浏览者手机号码_微信小程序开发之获取用户手机号码(php接口解密)...

    后边要做一个微信小程序,并要能获取用户微信绑定的手机号码.而小程序开发文档上边提供的获取手机号码的接口(getPhoneNumber())返回的是密文,需要服务器端进行解密,但是官方提供的开发文档一如 ...

  5. 23种开发设计模式总结,追求高内聚低耦合的编程思想。

    目录 一.概述 二.7个设计原则 1.单一职责原则 ( SRP ) 2.开闭原则 ( OCP ) 3.里氏替换原则 ( LSP ) 4.依赖倒置原则 ( DIP ) 5.接口隔离原则 ( ISP ) ...

  6. 游戏设计与开发_Unity游戏开发——设计模式概述

    0.前言 这一系列的文章其实应该算作几本书和一些资料总结的笔记,是有关设计模式与游戏开发之间的应用.笔者将阅读学习过程中的思考和总结记录下来,也希望能提供给同样在这方面有疑问的朋友一些帮助. 1.设计 ...

  7. Java查漏补缺(08)关键字:static、单例设计模式、理解main方法、类的成员之四:代码块、final关键字、抽象类、接口、内部类、枚举类、注解、包装类

    Java查漏补缺(08)关键字:static.单例设计模式.理解main方法.类的成员之四:代码块.final关键字.抽象类.接口.内部类.枚举类.注解.包装类 本章专题与脉络 1. 关键字:stat ...

  8. android Java开发设计模式及在android中的应用解析

    android Java开发设计模式及在android中的应用解析 什么是设计模式: 可以用一句话概括设计模式---设计模式是一种利用OOP的封闭.继承和多态三大特性,同时在遵循单一职责原则.开闭原则 ...

  9. c# typescript_在任何IDE中从C#,Java或Python代码获取TypeScript接口的简单方法

    c# typescript by Leonardo Carreiro 莱昂纳多·卡雷罗(Leonardo Carreiro) 在任何IDE中从C#,Java或Python代码获取TypeScript接 ...

  10. 微信公众平台开发(73) 客服接口发送客服消息

    微信公众平台开发(73) 客服接口发送客服消息 原文:微信公众平台开发(73) 客服接口发送客服消息 微信公众平台开发 客服接口 发送客服消息 作者:方倍工作室  地址:http://www.cnbl ...

最新文章

  1. 如何让你的Nginx 提升10倍性能?
  2. 5月,我面试了60多号人,写了些总结
  3. 项目导入时报错:The import javax.servlet.http.HttpServletRequest cannot be resolved
  4. HDU 2216(简单BFS)
  5. Qt Remote Object(QtRO)实现进程间通信
  6. boost::random模块使用多精度类型测试所有与整数相关的生成器和分布的测试程序
  7. Chrome浏览器无法观看视频,一直提示“adobe flash player 已过期” ?
  8. .NET Core 实现基于Websocket的在线聊天室
  9. vb 获取系统声音的电平_质量好的背景音乐系统套装效果图
  10. java php serialize_PHP serialize 和 JSON 解析与区别
  11. centos7,pyinstaller打包出application/x-sharedlib,这是一个求助的帖子
  12. Binary translation is incompatible with long mode on this platform
  13. [译文]GBAGuy的GBA ASM教材 第一章 概述
  14. 可替换MPS MP2451的高压DCDC芯片FS2451助力智能电表设计40V0.5A降压IC
  15. 函数式编程?别费力气了,它就是个愚蠢的玩具
  16. java.lang.IllegalArgumentException: Receiver not registered
  17. 后面尾缀-T、-X、-TX…分别表示的意思
  18. Shiro的Java原生反序列化漏洞
  19. 一图轻松搞懂吉利Basetech之OCC
  20. 东方财富板块资金python抓取

热门文章

  1. return、break、continue三者的区别
  2. python入门学多久_为什么Python适合初学者,一般要学习多久
  3. Go语言学习路线图 初阶+中阶+高阶
  4. DevOps使用教程 华为云(9)代码检查
  5. 【Django 2021年最新版教程19】数据库查询 model filter 条件或or
  6. CMakeLists.txt是什么
  7. 第八章(三)滑动窗口
  8. Arrays.binarySearch的返回值
  9. JDBC04 PreparedStatement
  10. java中常用的类——Math类