如何查找实现给定接口的所有类?

2023-11-29

在给定的命名空间下,我有一组实现接口的类。我们就这样称呼它吧ISomething。我还有另一堂课(我们称之为CClass)知道ISomething但不知道实现该接口的类。

我想要那个CClass寻找所有的实施ISomething,实例化它的实例并执行该方法。

有人知道如何使用 C# 3.5 做到这一点吗?


工作代码示例:

var instances = from t in Assembly.GetExecutingAssembly().GetTypes()
                where t.GetInterfaces().Contains(typeof(ISomething))
                         && t.GetConstructor(Type.EmptyTypes) != null
                select Activator.CreateInstance(t) as ISomething;

foreach (var instance in instances)
{
    instance.Foo(); // where Foo is a method of ISomething
}

Edit添加了对无参数构造函数的检查,以便对 CreateInstance 的调用能够成功。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何查找实现给定接口的所有类? 的相关文章

  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • Windows Phone 8 中的弹出窗口

    我想显示一个弹出窗口 其中媒体元素作为一个控件 当用户单击按钮时 我必须显示此弹出窗口 当用户单击设备的后退按钮时 应关闭弹出窗口 请帮助我如何在 Windows Phone 8 应用程序中执行此操作 带 MediaElement 的弹出窗
  • Wordpress 中的 Google 地图 API Javascript

    希望大家能够回答这个问题 我认为这应该相对容易 但我似乎无法掌握它 如何在 WordPress 帖子 页面中加载 Google Maps API Javascript WordPress Codex 似乎建议在主题标题中引用您的 javas
  • 计算十六进制字符串的二进制补码校验和

    我有一个字符串 0AAE0000463130004144430000 我需要计算组成该字符串的十六进制字节的二进制补码校验和 上面示例字符串的公式为 对值求和 0A AE 00 00 46 31 30 00 41 44 43 00 00 2
  • multiprocessing.Queue 作为池工作程序的参数中止工作程序的执行

    我实际上发现很难相信我遇到了我遇到的问题 这似乎是 python 多处理模块中的一个大错误 无论如何 我遇到的问题是每当我通过将 multiprocessing Queue 作为参数传递给 multiprocessing Pool 工作线程
  • Python get 获取矩阵中具有 na 值的邻居的平均值

    我有非常大的矩阵 所以不想通过遍历每一行和每一列来求和 a 1 2 3 3 4 5 5 6 7 def neighbors i j a return a i j 1 a i j 1 len a 0 a i 1 j a i 1 len a j
  • 处理 Rails 3 中的 has_one 嵌套资源

    我有一个用户模型和一个关于模型 关于模型是一个页面 用户可以在其中获得有关他们的更多信息 由于其性质 将其放在单独的模型上而不是在用户模型中更合适 我希望能够将其路由到 username about 之类的内容 并让所有动词在该路径上工作
  • 如何检测 Angular 中的路由变化?

    我正在寻找检测我的路线变化AppComponent 此后 我将检查全局用户令牌以查看用户是否已登录 以便在用户未登录时可以重定向用户 在 Angular 2 中你可以subscribe Rx 事件 到 Router 实例 所以你可以做类似的
  • 在 matplotlib 中显示所有数据集的固定宽度条形

    我有以下数据集 我需要绘制 1 2 或所有数据集的条形图 当我绘制单个数据项的图表时 例如 xdata 0 and ydata 1000 xlabels first 条形图会缩放以占据整个绘图区域 如何将条形图宽度限制为 0 45 ydat
  • 使用 vb.net 在 SQL 中保存日期

    我使用以下代码保存文本框中的日期并使用日期选择器选择日期 If String IsNullOrEmpty DobTxt Text Then SQLCmd Parameters Add DOB SqlDbType Date Value DBN
  • 如何去掉 JavaScript 代码文本框中的 NaN?

    我正在尝试制作一个三角形缺腿计算器 首先你放一条腿 即斜边 然后你就会得到缺失的腿 但是 如果您先填写第二个框 它会显示 NaN 我知道它没那么重要 但是有没有办法摆脱它 让它显示 0 直到两个盒子都填满为止 这是代码
  • 将 matlab 矩阵转换为向量

    我想在预定义位置获取 Matlab 矩阵的元素向量 例如 我有以下内容 gt gt i 1 2 3 gt gt j 1 3 4 gt gt A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A 1 2 3 4
  • Trello.Net 授权有效,但授权后无法访问数据

    我是新来的Trello Net并在授权方面遇到了一些困难 我了解请求 URL 然后要求用户浏览该 URL 以获取令牌的过程 第一个问题是我正在尝试编写一个无需任何 UI 即可自动运行的进程 因此 我必须使用硬编码令牌 该令牌是通过运行此代码
  • 为 Outlook 2010 构建插件时 FindRibbons 任务意外失败

    我们正在使用 VS2013 NET4 Microsoft Async 和 BCL Portability 来自 Nuget 构建 Outlook 2010 插件 并遇到类似于以下内容的构建错误这个问题 and 本次论坛讨论不幸的是 这些资源
  • 使用从笛卡尔空间和世界文件生成的纬度和经度计算多边形面积

    给定一系列 GPS 坐标对 我需要计算多边形 n 边形 的面积 这是相对较小的 不大于 50 000 平方英尺 地理编码是通过对世界文件中的数据应用仿射变换来创建的 我尝试使用两步方法将地理编码转换为笛卡尔坐标 double xPos lo
  • 熊猫合并两个数据帧求和值[重复]

    这个问题在这里已经有答案了 假设我有两个带有部分重复条目的数据帧 source1 pandas DataFrame key a b value 1 2 key value 0 a 1 1 b 2 source2 pandas DataFra
  • 在 PhpStorm 中打开和关闭 HTML 标签时添加自动注释

    我想添加 HTML 注释 div class div 以及他们各自的 div s 例如 假设我有一个 div class main container 我想在它之后立即发表评论 然后在其之后 div 我想要一个 一切都会是什么样子的一个例子
  • Roslyn:如何从当前加载的解决方案中获取对工作区的引用?

    我试图获取对当前加载的工作区的引用 但没有成功 根据文档 粗体部分 我应该能够获得它的参考 工作区 API 位于 Roslyn Services 命名空间中 并且 如果您包含以下 using 指令 则它们可用 使用 Roslyn Servi
  • Windows 8 Metro 是否支持托管 c++/cli

    我似乎无法在任何地方找到这个问题的答案 但是 Metro 会支持托管 C 吗 目前在 Visual Studios 2012 RC 中还没有 仅在 Metro 中 我有一些用 c cli 编写的框架 想将它们移植到 Metro 我知道 c
  • MSSQL - 将 1970 年以来的毫秒转换为 datetime2

    考虑以下查询 在 MSSQL 2008 中 SELECT dateModified FROM SomeTable 这将返回 javascript 格式的浮点数 自 1970 年以来的毫秒数 dateModified 130159829068
  • 如何查找实现给定接口的所有类?

    在给定的命名空间下 我有一组实现接口的类 我们就这样称呼它吧ISomething 我还有另一堂课 我们称之为CClass 知道ISomething但不知道实现该接口的类 我想要那个CClass寻找所有的实施ISomething 实例化它的实