Managed Extensibility Framework(MEF)是微软的一个用来扩展.NET应用程序的框架,它最初为了满足Visual Studio里的编辑器的需求,比如说,延迟加载所有东西和细粒度协定。随着托管代码慢慢地取代基于COM的扩展模型,MEF框架也逐渐成型。

MEF是在Codeplex上开源的,并且现在已经是.Net 4.0的一部分。我们可以用它非常容易的实现插件框架。一个简单的示例如下(使用时需要添加System.ComponentModel.Composition.dll 的引用): 

    class Program
    {
        [Import]
        ILogger logger;

        void Compose()
        {
            var catalog = new AssemblyCatalog(this.GetType().Assembly);
            var container = new CompositionContainer(catalog);
            container.ComposeParts(this);
        }

        public static void Main(string[] args)
        {
            var p = new Program();
            p.Compose();

            p.logger.LogMessage("hello world");
        }
    }

    interface ILogger
    {
        void LogMessage(string msg);
    }

    [Export(typeof(ILogger))]
    class ConsoleLogger : ILogger
    {

        public void LogMessage(string msg)
        {
            Console.WriteLine(DateTime.Now + ": " + msg);
        }
    }
View Code

相关文章:

  • 2021-09-12
  • 2021-07-10
  • 2021-10-10
  • 2021-07-22
  • 2022-02-23
  • 2021-10-01
  • 2021-05-19
  • 2021-08-18
猜你喜欢
  • 2022-12-23
  • 2021-10-15
  • 2021-09-20
  • 2021-05-30
  • 2022-02-26
  • 2021-11-08
  • 2022-01-02
相关资源
相似解决方案