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

  • 相关阅读:
    libPods.a 无法找到的解决方法
    Mac 必备软件 Quicksilver
    Mac玩老游戏DOOM II
    [转载]The Island Castaway mac版解锁
    看了不到一半同事上培训班时候的示例代码,解决了很多前几个月遇到的问题。
    8月16日 layui使用
    8月14日
    8月13日
    8月12日
    8月9日
  • 原文地址:https://www.cnblogs.com/Fred1987/p/5999163.html
Copyright © 2011-2022 走看看