zoukankan      html  css  js  c++  java
  • Microsoft.Practices.Unity

    //
    // Summary:
    // Register a type mapping with the container.
    //
    // Parameters:
    // container:
    // Container to configure.
    //
    // injectionMembers:
    // Injection configuration objects.
    //
    // Type parameters:
    // TFrom:
    // System.Type that will be requested.
    //
    // TTo:
    // System.Type that will actually be returned.
    //
    // Returns:
    // The Microsoft.Practices.Unity.UnityContainer object that this method was called
    // on (this in C#, Me in Visual Basic).
    //
    // Remarks:
    // This method is used to tell the container that when asked for type TFrom, actually
    // return an instance of type TTo. This is very useful for getting instances of
    // interfaces.
    // This overload registers a default mapping and transient lifetime.
    [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification = "As designed")]
    public static IUnityContainer RegisterType<TFrom, TTo>(this IUnityContainer container, params InjectionMember[] injectionMembers) where TTo : TFrom;

    class Program
    {
    static UnityContainer container = new UnityContainer();

    static void Init()
    {
    container.RegisterType<IPlayer, Player>();
    container.RegisterType<IMediaFile, MediaFile>();
    }
    static void Main(string[] args)
    {
    Init();
    OperationMain op1 = container.Resolve<OperationMain>();
    op1.PlayMedia();
    Console.ReadLine();
    }
    }

    //媒体文件
    public interface IMediaFile
    {
    string FilePath { get; set; }
    }

    //默认媒体文件
    public class MediaFile : IMediaFile
    {
    private string filePath;
    public string FilePath
    {
    get
    {
    return filePath;
    }
    set
    {
    filePath = value;
    }
    }
    }

    //播放器
    public interface IPlayer
    {
    void Play(IMediaFile file);
    }

    //默认播放器
    public class Player : IPlayer
    {
    public void Play(IMediaFile file)
    {
    Console.WriteLine(file.FilePath);
    }
    }

    public class OperationMain
    {
    IMediaFile _mtype;
    IPlayer _player;

    public OperationMain(IPlayer player,IMediaFile mtype)
    {
    _player = player;
    _mtype = mtype;
    }

    public void PlayMedia()
    {
    _player.Play(_mtype);
    }
    }

  • 相关阅读:
    native和webview切换
    appium API接口
    appium自动化测试之UIautomatorviewer元素定位
    appium的兼容问题
    adb常用命令
    java include包含指令例子
    设备与设备之间 的数据传输
    sitecore(keyvaluelanguage)的灵活应用
    java eclipse 连接数据库全过程
    java1200例-文字的探照灯效果
  • 原文地址:https://www.cnblogs.com/Fred1987/p/5999163.html
Copyright © 2011-2022 走看看