在 .NET 中创建插件环境的最佳方法

2023-11-21

我读了这篇文章如何在.NET中加载插件?,我实在看不出微软的System.Addin命名空间有什么高明之处。为什么我不能在 bin 目录中有一个插件文件夹,用户可以将程序集放入其中以实现我设计的界面?然后,我可以使用反射来创建插件类的实例,并通过我的界面引用它。

为什么 System.Addin 方式明显更好?特别是因为它看起来像是三倍的工作量和不太直观的设计。


我建议看看托管可扩展性框架(已添加到 .NET 4 的核心框架中)。它允许您准确地执行您所描述的操作,并且在可扩展性场景中使用非常简单且灵活。

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

在 .NET 中创建插件环境的最佳方法 的相关文章

  • 在 C 中读取字符时打印

    我正在尝试编写一个简单的小代码片段来响应箭头键按下 我知道 up 由 A 表示 并且我有以下代码来检查该序列 while 1 input char fgetc stdin if input char EOF input char n bre
  • 用于测试 func(args) 是否格式良好且具有所需返回类型的特征

    有许多类似的问题 答案 但我无法将这些答案完全放在一起来服务于我的目的 我想要一个特质 template
  • 将 python 字典翻译为 C++

    我有包含以下代码的 python 代码 d d 0 0 0 d 1 2 1 d 2 1 2 d 2 3 3 d 3 2 4 for i j in d print d i j d j i 不幸的是 对于我的目的来说 循环遍历 python 中
  • 如何用单反斜杠替换双反斜杠

    我想用单反斜杠替换双反斜杠 Using string destinationFile System IO Path Combine msiDirectory fileName Replace gives C Hg temp LogFile
  • 为什么Java不支持C中的clrscr这样的函数?

    我有一个问题 对很多人来说可能听起来很愚蠢 但我不能停下来把它发布在这里 因为在互联网上找不到任何东西 为什么java没有我们在C中使用的clrscr之类的函数 如果我创建了一个基于用户输入反复迭代的 java 控制台应用程序 然后如果我想
  • JPG、DOC、PDF 等文件是否也编译成程序集?

    Q1 Does aspnet compiler exe将网站目录中包含的所有文件 甚至 JPG DOC 和 PDF 类型 编译成程序集 如果将图像添加到Web项目中的文件列表中 从而将它们添加到项目文件中 这些图像也会被VS编译成程序集吗
  • 无法将 User32.dll 导入 Visual Studio

    I tried To add 用户32 dll from 参考管理器 并将其导入自Windows System32 user32 dll I got 错误信息 无法添加对 C Windows System32 user32 dll 的引用
  • WCF Xml 与二进制序列化的优缺点

    我知道如果我将二进制序列化与 WCF 一起使用 我就会失去互操作性 如果我愿意接受这一点 我想知道使用二进制比 Xml 是否有效率优势 如果还有我上面没有提到的其他优点和缺点 是的 可能是一个大事件 XML 序列化数据比二进制数据要大 使用
  • ASPNET MVC - 使用具有相同签名的新助手覆盖 Html.TextBoxFor(model.property)?

    我想用我自己的助手重写 Html TextBoxFor 该助手具有完全相同的签名 当然 但名称空间不同 这是否可能 如果可以 如何实现 原因是我在现有的应用程序中有 100 多个视图 并且我想更改 TextBoxFor 的行为 以便在属性具
  • 为什么%c前面需要加空格? [复制]

    这个问题在这里已经有答案了 下面的代码一编译就给出了奇怪的o p main char name 3 float price 3 int pages 3 i printf nEnter names prices and no of pages
  • UWP 关闭信息亭模式

    我有一个发布到 Windows 应用商店的 UWP 应用程序 并且该应用程序可以启动进入信息亭模式 分配访问权限 它工作得很好 但我尝试在应用程序上创建一个按钮来关闭信息亭模式并返回到 Windows 登录屏幕 我尝试了文档中给出的代码 h
  • Caliburn.Micro 事件聚合器

    如果这是一个非常愚蠢的问题 请道歉 但我刚刚开始使用 caliburn micro 我正在努力获取 eventAggregator 似乎没有任何内容订阅 我不确定问题是出在视图模型还是引导程序上 这是视图模型 class MainWindo
  • 按下按钮时更改几何绘图画笔的颜色

    我创建了一个按钮模板 有一个图像和一个标签 图像的来源位于 ResourceDictionary Pictures 中 图片的来源是具有白色画笔颜色的 DrawingImage
  • GetReferencedAssemblies 不返回所有程序集

    我在表单中有以下代码 并试图找到一种方法来加载由名为的表单引用的项目程序集DataObjects 使用以下代码 我只列出了六个程序集 查看表单所在项目的引用 有十三个程序集引用 这里有什么问题吗 private void ListRefer
  • EF5、SQL Server、经度和纬度

    我发现在 SQL Server 中存储纬度和经度的最佳类型是十进制 9 6 参考文献 1 在 SQL 数据库中存储纬度和经度数据时应使用什么数据类型 https stackoverflow com questions 1196415 wha
  • Oracle DataAccess 相关:“动态程序集中不支持调用的成员。”

    据我了解 此类错误已在 SO 上讨论过多次 有些人认为这是 DLL 文件中的错误 有些人通过更改 DLL 版本来解决 其他人似乎没有任何线索 无论如何 我只是发帖试试运气 在 C GUI 上的网格中选择一行时 我的应用程序崩溃了 stack
  • IntelliJ IDEA Scala 插件问题

    我对新的 Intellij IDEA 10 和 Scala 插件有疑问 当我在 Scala 源文件中输入任何内容时 编辑器会永久冻结 在其他文件 java 和其他 编辑器中效果很好 结构视图 scala 检查和显示成员功能已关闭 堆大小增加
  • ASP.NET:通过命名空间一次注册多个控件?

    是否可以在 aspx 文件中注册用户控件的完整命名空间 而不是单独注册每个控件 我创建了一堆用户控件并将它们收集到自己的命名空间 MyWebControls 中 如下所示 隐藏代码 namespace MyWebControls publi
  • 迭代非增量枚举

    在你问之前 我已经looked https stackoverflow com questions 261963 c iterate through an enum and looked https stackoverflow com qu
  • 用 C# 解析和查询 SOAP

    我正在尝试解析一个大量命名空间的 SOAP 消息 源也可以在here http tinyurl com n3av6k

随机推荐

  • 如何将sqlite同步到Mysql

    大家好你们好 我有个问题 如果我有一台运行 sqlite 的计算机 并且我想让 sqlite 同步外网中的 Mysql 服务器 如果sqlite中的数据已被 更改 修改 我如何同步我的MYSQL DB和sqlite 以便当MYSQL DB中
  • 将 Excel 文件合并为一个

    我有几百个 Excel 文件 每个文件的第一张纸上都有一些数据 我被要求用 C 编写一个控制台应用程序 它将所有 Excel 文件合并到一个文档中 同时保留格式 合并文件是一个单独的工作簿 其中包含合并到文档中的每个文件的工作表 不幸的是
  • Jenkins-作业失败

    我已经设置了一个 uberSVN 服务器 并运行 Jenkins 以使用 PHP WebWare 控制 SVN 存储库 我已经遇到了问题并寻找解决方案已经好几个小时了 现在我希望这是最后一个 但我没有找到任何答案 Publishing Cl
  • LINQ:如何在多个字段上使用 linq 扩展方法样式进行 JOIN?

    在下面的连接中 我想使用多个字段来进行连接 而不仅仅是一个字段 var join group Join procSums g gt g DeptID ps gt ps key deptID g ps 我发现的所有示例都使用查询样式来执行此操
  • 检测连接的音频设备 iOS

    我正在尝试找出如何检测 iphone ipad ipod 上是否连接了任何音频设备 我知道有关音频路由调用和路由更改回调的所有信息 但这些并没有告诉我有关附加内容的任何信息 它们仅报告音频当前路由的位置 例如 我需要知道当音频通过扬声器传送
  • 如何在 theano 中获得一维卷积

    我能找到的唯一函数是二维卷积此处描述 有没有优化的一维函数 看起来好像这是开发中 我意识到我可以使用conv2d 通过将宽度或高度指定为 1 对于函数conv2d 参数image shape获取长度为 4 的列表 其中包含 number i
  • Node.js:捕获“child_process.spawn”的 STDOUT

    我需要在自定义中捕获stream生成的子进程的输出 child process spawn command args options 例如 var s fs createWriteStream tmp test txt child proc
  • Windows 上的 Bash - exe 文件的别名

    我正在 Windows 上的 Ubuntu 上使用 Bash 这是在 Windows 10 上运行 bash 的方式 我安装了 Creators 更新 Ubuntu 版本是 16 04 我最近在玩 npm node js 和 Docker
  • globalPackagesFolder存储库路径差异

    根据globalPackagesFolderNuGet 文档 它允许您更改默认全局包文件夹的位置 而不是 Users username nuget packages 所以 我发现这是存储包裹的地方 另一方面 repositoryPathNu
  • 使 FetchContent 与 find_package 兼容

    我尝试添加我的项目所需的所有依赖项以通过 CMake 进行编译 这应该会减少其他人第一次编译项目时的开销 为了实现这一点 我尝试使用 FetchContent 到目前为止一切顺利 当我链接生成的目标时 这根本不是问题 但现在我有一个库依赖于
  • 您需要在 GCD 的块内创建 NSAutoreleasePool 吗?

    通常 如果您生成后台线程或在 NSOperationQueue 上运行 NSOperation 则需要为该线程或操作创建 NSAutoreleasePool 因为默认情况下不存在 同样的规则是否适用于放置在 Grand Central Di
  • Jquery 验证插件 - 您可以从选项中启用“热切”验证吗?

    我在项目中使用 Jquery 验证插件 默认情况下 该插件会在单击提交按钮时验证输入 该行为是 惰性的 以便不打扰用户 如果发现错误 验证就会变得 急切 并在用户更正有问题的条目时验证输入 有没有办法通过选项覆盖最初的 惰性 行为 我在文档
  • 如何从时间(小时)中删除前导零

    我想要从 1 到 9 的小时不带前导零 但分钟带零 同时还要在时间上添加 15 分钟 现在 当我输入 1 和 46 时 我得到 02 01 我想得到 2 01 Scanner scan new Scanner System in int h
  • Request.Browser.IsMobileDevice 不适用于 iPadAir2 和 iOS 13.0.1

    I am able to detect iPadAir2 device running on iOS 11 4 using Request Browser IsMobileDevice and it gives me UserAgent i
  • 颁发者证书的过期状态是否会影响主体的过期?

    如果证书颁发者颁发的证书的过期时间发生在颁发者自己的证书过期之后 那么颁发者的证书过期后 颁发的证书是否仍然有效 为了更清楚 让我举个例子 I 发行人 C 颁发的证书 如果我在 2007 年创建了 C 到期日期为 2017 年 我的证书20
  • Leopard 终端(和 iTerm)忽略控制组合键

    I am very used to using Ctrl A Ctrl E Ctrl L etc as shortcuts to operations beginning of line end of line clear terminal
  • 找到不在列表中的最小整数

    我的一位同事使用了一个有趣的面试问题 假设给您一个非常长的 未排序的无符号 64 位整数列表 你如何找到最小的非负整数does not出现在列表中 后续 既然已经提出了明显的排序解决方案 你能比 O n log n 更快地完成它吗 后续 您
  • 查找“nan”并将其替换为数字

    我想替换数组中的数字 3 而不是所有 nan 这是我的代码 train train replace nan int 3 但我的数组没有任何变化 你能指导一下吗 您可以使用np isnan import numpy as np train n
  • 从 ExceptionLogger 引用操作参数

    我想利用新方法来全局记录错误 我写了一个继承的类ExceptionLogger并覆盖Log 方法 然后将其注册为替代品 public class TraceExceptionLogger ExceptionLogger public asy
  • 在 .NET 中创建插件环境的最佳方法

    我读了这篇文章如何在 NET中加载插件 我实在看不出微软的System Addin命名空间有什么高明之处 为什么我不能在 bin 目录中有一个插件文件夹 用户可以将程序集放入其中以实现我设计的界面 然后 我可以使用反射来创建插件类的实例 并