• 依赖注入例子


     class Program
        {
            interface ILogger
            {
                void Log(string message);          
            }
            class Logger : ILogger
            {
                public void Log(string message)
                {
                    Console.WriteLine(message);
                }
            }

            interface IPropertyInject
            {
                ILogger PropertyLog { get; set; }
            }

            class PropertyInject : IPropertyInject
            {
                public ILogger PropertyLog { get; set; }
            }

            class ConstuctorInject
            {
                private ILogger ConstuctorLog;
                public ConstuctorInject(ILogger log)
                {
                    ConstuctorLog = log;
                }
                public void Log()
                {
                    ConstuctorLog.Log("我是构造函数注入");
                }
            }
            
            static void Main(string[] args)
            {
                var container = new WindsorContainer();
                container.Register(Component.For<ILogger>().ImplementedBy<Logger>());
                container.Register(Component.For<IPropertyInject>().ImplementedBy<PropertyInject>());
                container.Register(Component.For<ConstuctorInject>());

                var logger = container.Resolve<ILogger>();
                logger.Log("我是依赖注入实例化");

                var property = container.Resolve<IPropertyInject>();
                property.PropertyLog.Log("属性依赖注入");

                var consturctor = container.Resolve<ConstuctorInject>();
                consturctor.Log();
            }
        } 
  • 相关阅读:
    [源码]一个简单的源代码行数统计器
    [转载]一个java程序员的面试
    [源码]用c#创建支持多语言的应用程序
    Effective C#
    [源码]类似于 word 的颜色选择器 ColorPicker
    opera中开启WebGL
    Java学习之路
    邮箱正则表达式写法
    AX 2009 扩展类型控件的Lookup的写法
    唐骏的管理名言
  • 原文地址:https://www.cnblogs.com/ZengYunChun/p/6094203.html
Copyright © 2020-2023  润新知