Ninject超轻量级的依赖注入工具

Ninject可以帮助我们解耦,提高类的内聚度,它的使用非常简单,看下面代码:

首先下载Ninject.dll这个动态链接库文件,可以到DLL大全里下载

 public interface ISay
    {
        void Write(string message);
    }
 
    public class ChinaSay : ISay
    {
        public void Write(string message)
        {
            Console.WriteLine(String.Format("早上,中国人说:{0}", message));
        }
    }
 
    public class USASay : ISay
    {
        public void Write(string message)
        {
            Console.WriteLine(String.Format("早上,美国人说:{0}", message));
        }
    }
 
 
    internal class MyModule : Ninject.Modules.NinjectModule
    {
        public override void Load()
        {
            Bind<ISay>().To<USASay>();
        }
    }

调用也十分方便 :

 IKernel kernel = new StandardKernel(new MyModule());
 
 ISay logger = kernel.Get<ISay>();
 logger.Write("早上好");

 

当然如果不使用Ninject也可以通过其它方法实现依赖注入,比如构架函数,看代码:

 
    /// <summary>
    /// 构架函数的依赖注入
    /// </summary>
    internal class Factory : ISay
    {
        ISay _isay;
        public Factory(ISay isay)
        {
            this._isay = isay;
        }
 
        #region ISay 成员
 
        public void Write(string message)
        {
            this._isay.Write(message);
        }
 
        #endregion
    }
posted @   张占岭  阅读(1478)  评论(1编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示