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); } }

 

posted @ 2013-08-27 14:29  瓜王  阅读(267)  评论(0编辑  收藏  举报