我正在创建一系列相关的插件。每个插件用于不同的实体。每个插件都必须拥有自己的程序集吗?我正在使用Visual Studio,我在同一个解决方案中创建了第二个项目,但我看不到注册工具中的新步骤。
由于
答案 0 :(得分: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
我必须承认这似乎有些过分 - 但它也可能取决于你如何使用你的解决方案。
答案 1 :(得分:2)
除了glosrob的回答之外,我猜你正在使用插件注册工具来注册你的插件。如果是这样,您需要确保在将新插件添加到同一个dll之后,使用注册工具更新插件dll本身,这样您就可以注册新的插件方法了吗?创建
答案 2 :(得分:1)
是的,您可以在不同的类库项目中创建每个插件,但这不是一个好习惯。我更愿意将所有插件收集到一个类库中。
请注意,从“文件”对话框中选择程序集后,必须单击“加载程序集”按钮以加载实现IPlugin接口的所有类。
答案 3 :(得分:1)
要回答这个问题 - 不,每个新插件都不必包含在新程序集中。
详细说明 - 技术上可以将所有插件代码放在一个项目和一个文件中。
要警告 - 以上将是所有ifs和buts管理的噩梦,所以这是一个很好的例子,但不应该。
建议 - 我通常为每个实体的插件都有一个单独的项目,并使用开关处理所有消息。有时候,我可能会有两到三个装配,但是当你到达那里时,你会知道什么时候这样做。通常,一个DLL就足够了。