zoukankan      html  css  js  c++  java
  • 使用Ninject进行DI(依赖注入)

    Ninject是一个快如闪电、超轻量级的基于.Net平台的依赖注入框架。
    它能够帮助你把应用程序分离成一个个松耦合、高内聚的模块,然后用一种灵活的方式组装起来。通过使用Ninject配套你的软件架构,那么代码将会变得更加容易编写、重用性强、易于测试和修改。

    更多信息见http://www.ninject.org/

    github上的源码见:https://github.com/ninject/Ninject
    下面是一个简单的调用示例:

    定义接口与基础类

    interface IDocumentDAL
        {
            string Save(Document Entity);
        }
    
        public class Document
        {
            public int Id
            {
                get;
                set;
            }
            public string Title
            {
                get;
                set;
            }
            public DateTime CreateTime
            {
                get;
                set;
            }
        }
    public class SqlDocumentDAL : IDocumentDAL
        {
            public string Save(Document entity)
            {
                return string.Format("id={0},Title={1},CreateTime={2}", entity.Id, entity.Title, entity.CreateTime);
            }
        }

    强耦合方式调用:

     Document doc = new Document { Id = 1, Title = "测试标题1", CreateTime = DateTime.Now };
    
                IDocumentDAL dal = new SqlDocumentDAL();
                string result = dal.Save(doc);
    
                Console.WriteLine(result);

    使用Ninject进行DI方式的调用:

    Document doc = new Document { Id = 1, Title = "测试标题1", CreateTime = DateTime.Now };   
    IKernel ninjectKernel = new StandardKernel();
                ninjectKernel.Bind<IDocumentDAL>().To<SqlDocumentDAL>();
    
                IDocumentDAL dal = ninjectKernel.Get<IDocumentDAL>();
    
                string result = dal.Save(doc);
  • 相关阅读:
    js正则表达式
    js遍历对象属性
    C# 带Cookies发送请求
    C# Cookies设置和读取
    C# ref 和 out 的使用
    jq 禁用复选框 和输入框
    C++学习之嵌套类和局部类
    C++学习之this指针
    C++学习之运算符重载的总结
    Labview中引用,属性节点,局部变量之间的区别
  • 原文地址:https://www.cnblogs.com/weiweictgu/p/5935254.html
Copyright © 2011-2022 走看看