• 【软件设计】【MEF】export


    Composable Part exports

    [Export]
    public class SomeComposablePart {
      ...
    }

    Property exports

      

    代码
      public class Configuration
      {
        [Export(
    "Timeout")]
        
    public int Timeout
        {
          
    get { return int.Parse(ConfigurationManager.AppSettings["Timeout"]); }
        }
      }
      [Export]
      
    public class UsesTimeout
      {
        [Import(
    "Timeout")]
        
    public int Timeout { getset; }
      }

    Method exports

      

    代码
      public class MessageSender
      {
        [Export(
    typeof(Action<string>))]
        
    public void Send(string message)
        {
          Console.WriteLine(message);
        }
      }

      [Export]
      
    public class Processor
      {
        [Import(
    typeof(Action<string>))]
        
    public Action<string> MessageSender { getset; }

        
    public void Send()
        {
          MessageSender(
    "Processed");
        }
      }
    代码
      public class MessageSender
      {
        [Export(
    "MessageSender")]
        
    public void Send(string message)
        {
          Console.WriteLine(message);
        }
      }

      [Export]
      
    public class Processor
      {
        [Import(
    "MessageSender")]
        
    public Action<string> MessageSender { getset; }

        
    public void Send()
        {
          MessageSender(
    "Processed");
        }
      }

    Inherited Exports

    [InheritedExport]
    public interface ILogger {
      
    void Log(string message);
    }

    public class Logger : ILogger {
      
    public void Log(string message);
    }
  • 相关阅读:
    java中间件
    JAVA 并发编程关键点
    pull类型消息中间件-消息服务端(三)
    pull类型消息中间件-消息消费者(二)
    pull类型消息中间件-消息发布者(一)
    push类型消息中间件-消息服务端(三)
    push类型消息中间件-消息发布者(二)
    push类型消息中间件-消息订阅者(一)
    RPC框架基本原理(三):调用链路分析
    JAVA包装类
  • 原文地址:https://www.cnblogs.com/ningth/p/1735006.html
Copyright © 2020-2023  润新知