如何在C#中正确插入插件?

前端之家收集整理的这篇文章主要介绍了如何在C#中正确插入插件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试添加插件到我的游戏,我想要实现的是这样的:

>插件将是我的或第三方,所以我想要一个解决方案,崩溃的插件不意味着崩溃的主要应用程序.
常常调用插件方法(例如由于绘制游戏对象).

我到目前为止发现的

> 1)http://www.codeproject.com/KB/cs/pluginsincsharp.aspx – 简单的概念,似乎应该能很好地工作.由于插件在我的游戏中用于每一轮,我将足以添加Restart()方法,如果不再需要插件Unload()方法GC应该照顾.
> 2)http://mef.codeplex.com/Wikipage – 管理扩展框架 – 我的程序应该在.NET 3.5上工作,我不想单独添加任何其他框架我想自己写我的插件系统.所以这个解决方案是没有问题的.
> 3)Microsoft提供:http://msdn.microsoft.com/en-us/library/system.addin.aspx,但根据我读过的几篇文章是非常复杂的.
> 4)插件的不同AppDomains.根据Marc Gravell(Usage of AppDomain in C#)的不同AppDomains允许隔离.卸载插件会很容易.性能负载是什么?我需要非常频繁地调用插件方法(例如绘制对象).

>使用应用程序域 – http://msdn.microsoft.com/en-us/library/yb506139.aspx
> A few tutorials on java2s.com

你能不能评论我的发现?新方法也欢迎!谢谢!

解决方法

您可以定义插件必须实现的公共接口.然后使用反射,您可以扫描“plugin”文件夹以实现该接口的任何类,然后创建该类的实例.

从你的代码只是在界面上工作,并调用所需的方法.关于崩溃,总是确保对“plugin”接口的调用总是封装在try / catch块中.如果发生异常,您可以随时处理该插件

猜你在找的C#相关文章