As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center作为指导。
                            
                        
                    
                
                                6年前关闭。
            
                    
我目前在游戏平台应用程序中工作。我希望能够轻松地向其中添加新游戏,但这些游戏应遵守特定的合同:


游戏必须具有一些必需的方法
他们必须接收主程序提供的一些事件
他们必须能够将一些数据发送回程序
如果外部开发人员仅通过了解界面就可以轻松地为平台制作游戏,那就太好了


我读过诸如MEF vs MAF之类的问题,起初我认为MAF对我来说更好,但我不确定。另外,我想我甚至可以制作一些自制系统,例如将游戏编译为DLL并在运行时检索它们。

由于隔离性,MAF看起来不错,但是由于我并没有真正使用很少的外接程序,而且正如我所读到的那样,MAF非常笨重且缺乏速度,因此我对应该使用什么有很多疑问。

我是否应该尝试MAF,即使它运行缓慢,难以开发,并且真的适合我的工作吗?

最佳答案

这可能不是您的完整答案,但是我会介绍我确实有经验的MEF(我对MAF没有真正的经验)。我认为MEF具有很多优点,可以满足您的需求。

MEF重量轻,易于使用。它提供了依赖项注入。

发现的东西很容易使用。只需创建目录,即可开始运行。

MEF使插件体系结构成为现实。我完全被卖掉了。

尽管MAF可能提供隔离,但您必须使东西不可移动才能跨应用程序域调用,这很麻烦。为了防止未处理的异常退出您的主应用程序,您必须在自己的进程中创建加载项,这有其自身的局限性。例如,如果您要在加载项之间共享DLL,则它们要么需要与共享DLL位于同一目录中,要么共享的DLL必须位于GAC中。

关于c# - 插件体系结构.net maf或mef ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14146886/

10-10 05:50