C#进阶系列
第一章 【C#进阶系列】【MEF框架(一)】
前言
这里对MEF作了基本的介绍,包括使用了一个特定场景(搞自动化运控上位机开发的应该更容易代入场景了),一步一步地介绍了如果从常用的编程过渡到框架性的编程开发。
一、MEF介绍
- MEF,全称Managed Extensibility Framework(托管可扩展框架)。MEF是专门致力于解决扩展性问题的框架。
- MSDN:Managed Extensibility Framework 或 MEF 是一个用于创建可扩展的轻型应用程序的库。 应用程序开发人员可利用该库发现并使用扩展,而无需进行配置。 扩展开发人员还可以利用该库轻松地封装代码,避免生成脆弱的硬依赖项。 通过 MEF,不仅可以在应用程序内重用扩展,还可以在应用程序之间重用扩展。
- MEF(Managed Extensibility Framework),是轻量级的插件框架。使用简单,功能强大。
- MEF 位于 ComponentModel.Composition 程序集中,添加 System.ComponentModel.Composition 和 System.ComponentModel.Composition.Hosting 的项目引用
二、为什么要用MEF
我们先假设一个场景:在运动控制上位机编程开发中,有固高、雷赛两种运动控制卡,现在我们需要根据实际设备使用哪种卡来实现不同的编程。
常规的实现:
class Program
{
static void Main(string[] args)
{
string ret = "";
string cardName = "实际设备使用哪种运动控制卡";
if (cardName == "固高板卡")
{
CLeadshine cLeadshine = new CLeadshine();
ret = cLeadshine.InitMotionCard();
ret = cLeadshine.ExitMotionCard();
}
else if (cardName == "雷赛板卡")
{
CGoogol cGoogol = new CGoogol();
ret = cGoogol.InitMotionCard();
ret = cGoogol.ExitMotionCard();
}
}
}
public class CLeadshine
{
public string InitMotionCard()
{
return "初始化固高板卡成功";
}
public string ExitMotionCard()
{
return "退出固高板卡成功";
}
}
public class CGoogol
{
public string<