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方法中返回對應實例

發佈了23 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章