【发布时间】:2014-04-03 11:57:24
【问题描述】:
我有 4 节课; A、B、C 和 D
我想加载这些类基于一些标准动态
这些类位于它们自己的 C# 类库 (dll) 项目中。这些类使用 Helix3D Toolkit。
如何设计一个插件系统来读取插件文件夹中的所有 .dll 文件,并允许以某种方式标记或编号(静态值可以这样做吗?)以便在需要时调用?
如果我在 dll 中引用
A类,而A类在主项目中,插件文件夹中的 dll 是否会自动找到A类插件的类子类时动态加载到主应用中?
【问题讨论】:
-
感谢 Sam 的编辑,但您有点错过了我的问题的重点。我有类模板 A、B、C 和 D,我想在我的插件中进行子类化。而且这些类不在它们自己的 dll 项目中,而是在主 exe 项目中,因为如果移动到单独的项目中它们会中断(helixes static Overlay.SetCoordinate3D 有一个错误)。
-
如果您将它们移动到自己的程序集,它们不应该中断,您是否引用了将它们移动到的程序集中的 helix dll?另外,定义中断。
-
对,对不起。 Overlay.SetCooridnates3D(Vector3f position) 设置画布子相对于底层 Helix3DViewport 的坐标 - 我认为是 WPF3D 视口的子类。我不知道这个魔法是如何做到的,但如果课程在主项目中,它就可以正常工作。一旦移动到一个单独的项目并被引用,同一个类将画布坐标设置为 0,0,无论 Vector3 输入如何。是的,两个项目都引用了 Helix3Dtoolkit。我猜这与对 Helix3DViewport 的访问有关,但这只是一个猜测。
-
在这里添加信息,如果基类在主项目中并且在单独的项目中被子类化,覆盖仍然有效。只有当基类被移动时,Overlay 才会起作用。
标签: c# dll subclassing