UnityContainer

Unity Container

是一个微软出的IoC(控制反转框架)

namespace NetDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            IUnityContainer container = new UnityContainer();
            // 默认注册
            container.RegisterType<IClass, CbClass>();
            // 命名注册
            container.RegisterType<IClass, EcClass>("ec");
            // 解析默认对象
            IClass cbClass = container.Resolve<IClass>();
            cbClass.ClassName = "一班";
            cbClass.Show();
            // 解析命名对象
            IClass ecClass = container.Resolve<IClass>("ec");
            ecClass.ClassName = "二班";
            ecClass.Show();

            //获取容器中所有IClass的注册的已命名对象
            IEnumerable<IClass> classList = container.ResolveAll<IClass>();
            foreach(var item in classList)
            {
               item.Show();
            }
        }
    }

    public interface IClass
    {
        string ClassName { get; set; }
        void Show();
    }

    public class CbClass:IClass
    {
        public string ClassName { get; set; }
        public void Show()
        {
            Console.WriteLine($"计算机:{ClassName}");
        }
    }

    public class EcClass:IClass
    {
        public string ClassName { get; set; }
        public void Show()
        {
            Console.WriteLine($"电商班级:{ClassName}");
        }
    }
}

 

posted @ 2020-03-19 18:06  bradleydan  阅读(281)  评论(0)    收藏  举报