【C#进阶系列】【MEF框架(一)】

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<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值