Unity Application Block 学习笔记 之 Resolve方法

Resolve方法可以返回指定类型的所有注册对象列表

    public interface IService
    {
        void SayHello();
    }

    public class Chinese : IService
    {
        public void SayHello()  Console.WriteLine("你好");    }
    }

    public class English : IService
    {
        public void SayHello() Console.WriteLine("Hello"); }
    }

    public class XXX : IService
    {
        public void SayHello() Console.WriteLine("@#$%^&*"); }
    }

    class Program
    {
        static void Main(string[] args)
        {
            IUnityContainer container = new UnityContainer();

            container.RegisterType<IService, Chinese>("cn"); //命名注册
            container.RegisterType<IService, English>("en");//命名注册
            container.RegisterType<IService, XXX>();

            var man = container.ResolveAll<IService>();

            foreach (var men in man)
            {
                men.SayHello();
            }
            Console.Read();
        }
    }

输出结果:

你好
Hello

非命名注册将不会在ResolveAll方法中返回对应实例

你可能感兴趣的:(unity,unity,ResolveAll)