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

  • 相关阅读:
    FCKEditor使用说明
    如何查看索引或table所佔用的實際空間
    java字节输入流
    文件的读写操作
    利用JProfiler
    javascript面向对象技术基础(五)
    深刻理解Linux进程间通信(IPC)
    JAVA中操作数据库方式与设计模式的应用 2
    javascript面向对象技术基础(六)
    FCKeditor在线编辑器
  • 原文地址:https://www.cnblogs.com/Fred1987/p/5999163.html
Copyright © 2011-2022 走看看