zoukankan      html  css  js  c++  java
  • Ninject使用demo

    public class HomeController : Controller
        {
            public ActionResult Index()
            {
    //核心对象 IKernel ninjectKernel
    = new StandardKernel(); ninjectKernel.Bind<IValueCaculator>().To<LinqValueCalcalator>();

    //方案1:获取接口实例 IValueCaculator calImpl
    = ninjectKernel.Get<IValueCaculator>(); //方案2:自身绑定 //ShoppingCart cart = ninjectKernel.Get<ShoppingCart>(); //cart1.Products = new List<Product>() { new Product() { Category = "food", Price = 12 }, new Product() { Category = "books", Price = 30 }, new Product() { Category = "wine", Price = 40 } }; ShoppingCart cart = new ShoppingCart(calImpl) { Products = new List<Product> { new Product() { Category = "food", Price = 12 }, new Product() { Category = "books", Price = 30 }, new Product() { Category = "wine", Price = 40 } } }; var sum=cart.Cal(); return View(); } public ActionResult About() { return View(); } } public class Product { public int ProductId { get; set; } public string Name { get; set; } public string Description { get; set; } public decimal Price { get; set; } public string Category { get; set; } } public interface IValueCaculator { decimal ValueProduct(IEnumerable<Product> products); } public class LinqValueCalcalator : IValueCaculator { public decimal ValueProduct(IEnumerable<Product> products) { return products.Sum(a => a.Price); } } public class ShoppingCart { protected IValueCaculator valueCaculator; public ShoppingCart(IValueCaculator caculator) { valueCaculator = caculator; } public IEnumerable<Product> Products { get; set; } public decimal Cal() { return valueCaculator.ValueProduct(Products); } }
  • 相关阅读:
    测开之路九十九:js函数、事件、window窗体对象
    测开之路九十八:js变量和语句
    测开之路九十七:js的引用方式
    学生管理之登录实现
    学生管理之表单设计
    二、Django用户认证之cookie和session
    一、Django前后端交互之Ajax和跨域问题
    中间介
    Java SE之反射技术[Class](三)
    Java SE之反射技术[Field](二)
  • 原文地址:https://www.cnblogs.com/Benjamin/p/3284842.html
Copyright © 2011-2022 走看看