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);
    }
    }

  • 相关阅读:
    微信小程序 模板语法-列表渲染
    Fast Matrix Calculation HDU
    AT4845 [ABC164E] Two Currencies
    [ABC127E] Cell Distance
    CF18E Flag 2
    CF10C Digital Root
    CF8C Looking for Order
    [ARC075B] Widespread
    旅行商问题
    AcWing 291. 蒙德里安的梦想
  • 原文地址:https://www.cnblogs.com/Fred1987/p/5999163.html
Copyright © 2011-2022 走看看