• 【软件设计】【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);
    }
  • 相关阅读:
    BoundsChecker下载
    大型系统内部资源定位的途径
    架构的焦点
    为什么日志只应该有三个级别
    回收站引发ORACLE查询表空间使用缓慢
    题目记录
    广搜入门 待改进的广搜
    归并排序的使用
    大数数组中滚动数组的应用
    多重背包问题
  • 原文地址:https://www.cnblogs.com/ningth/p/1735006.html
Copyright © 2020-2023  润新知