1

我正在创建一系列相关的插件。每个插件适用于不同的实体。每个插件都必须有自己的程序集吗?我正在使用 Visual Studio,并在同一解决方案中创建了第二个项目,但我看不到注册工具中的新步骤。

谢谢

4

4 回答 4

4

它可以做,但不是必须的。这几乎是您的设计决定。考虑一下你是否有几个类都实现了IPlugin

public class MyFirstPlugin : IPlugin
{
    //implemented as per usual
}

public class MySecondPlugin : IPlugin
{
    //implemented as per usual
}

如果您要在插件注册工具中注册该 DLL,您将看到以下结构:

- Server
    - DLL
        - MyFirdtPlugin
        - MySecondPlugin

然后,您可以根据需要向每个插件添加步骤。

另一种方法是每个 DLL 有一个插件,这会给你

- Server
    - DLL1
        - MyFirstPlugin
    - DLL2
        - MySecondPlugin

我必须承认这似乎有点矫枉过正——但它也可能取决于你如何使用你的解决方案。

于 2013-03-18T19:16:29.220 回答
2

除了 glosrob 的回答,我猜您正在使用插件注册工具来注册您的插件。如果是这样,您需要确保在将新插件添加到同一个 dll 之后,使用注册工具更新插件 dll 本身,以便您可以注册您创建的新插件方法。

于 2013-03-18T19:34:03.970 回答
1

是的,您可以在不同的类库项目中创建每个插件,但这不是一个好习惯。我更愿意将所有插件收集到一个类库中。

请注意,从文件对话框中选择程序集后,您必须单击加载程序集按钮以加载所有实现 IPlugin 接口的类。

于 2013-03-18T19:14:43.437 回答
1

要回答这个问题 - 不,每个新插件都不必包含在新程序集中。

详细说明 - 从技术上讲,将所有插件代码放入一个项目和一个文件中是可行的。

警告 - 上面将是管理所有 ifs 和 buts 的噩梦,所以这是一个很好的例子,可以但不应该。

建议 - 我通常为每个实体的插件有一个单独的项目,并使用开关处理所有消息。有时,我可能有两到三个集会,但当你到达那里时,你就会知道什么时候该这样做。通常,一个 DLL 就足够了。

于 2013-03-19T00:30:25.113 回答