gpt4 book ai didi

c# - .NET 中的类插件架构

转载 作者:太空狗 更新时间:2023-10-29 17:45:28 24 4
gpt4 key购买 nike

我正在尝试实现 一个类似插件的应用程序。我知道已经有几种解决方案,但这只是概念的证明,仅此而已。这个想法是让应用程序主应用程序在默认情况下几乎没有任何功能,然后让插件相互了解,让它们实现所有需要的功能。

出现了几个问题:

  1. 我希望插件在运行时通过我的应用程序相互了解。这并不意味着在代码时他们不能引用其他插件的程序集以便他们可以使用它的接口(interface),只是插件功能初始化应该始终通过我的主应用程序。例如:如果我同时加载了插件 X 和 Y,并且 Y 想要使用 X 的功能,它应该通过我的应用程序“注册”它的兴趣以使用它的功能。我必须在我的应用程序中有一种“字典”来存储所有加载的插件。在注册我的应用程序后,插件 Y 将获得对 X 的引用,以便它可以使用它。这是一个好方法吗?
  2. 在编写使用 X 的插件 Y 时,我需要引用 X 的程序集,这样我才能针对它的接口(interface)进行编程。那有版本控制的问题。如果我针对插件 X 的过时版本编写插件 Y 怎么办?我是否应该始终使用所有程序集所在的“中央”位置,以便始终拥有最新版本的程序集?

有没有专门针对 .NET 设计的书籍?

谢谢

编辑:我认为人们正在偏离我提出的 2 个问题。我可以同时查看 MEF 和 #develop,但我想获得我提出的问题的具体答案。

最佳答案

我建议查看 MEF .这是在 .NET 中使用插件的新方法。例如,这是为 VS2010 制作新插件的推荐方式。我自己没有使用过它,但我调查过它看起来很棒。添加这个作为对其他人的刺激的答案:)

关于c# - .NET 中的类插件架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2791859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com