Pro ASP.NET MVC 3 Framework学习笔记之八

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 04:49 点击:

 

本次的笔记分为三个部分:Ninject(依赖注入容器,前面有介绍的,如果你第一次路过这里,可以先看下我前面的笔记),NUnit(单元测试工具),Moq(用来模拟在单元测试中的接口实现).今天我做的笔记是关于第一部分:Ninject.

 

如果你对依赖注入(DI)没有任何的了解,你可以看看我前面的笔记或者在网上搜索相关的资料进行了解。下面通过一个实例来介绍Ninject的使用,首先我们需要猛击这里下载相关的DLL。我们仍然用到的前面的Product,实现技术所有Product的总价值。下面通过几个步骤来具体的介绍:

 

1.创建一个Console Application,如果你不介意,我们暂且给它命名为NinjectDemo.接下来我们创建一个Product类,如下所示:

 

namespace NinjectDemo

{

    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 { set; get; }

    }

}

 

接着创建一个接口IValueCalculator,如下所示:

 

namespace NinjectDemo

{

    public interface IValueCalculator

    {

        decimal ValueProducts(params Product[] products);

    }

}

 

接着创建一个接口实现,如下所示:

 

namespace NinjectDemo

{

    public class LinqValueCalculator:IValueCalculator

    {

        public decimal ValueProducts(params Product[] products)

        {

            return products.Sum(p => p.Price);

        }

    }

}

 

这里我们计算Products的总价用了LINQ的扩展方法(关于扩展方法在前面的笔记有介绍),当然这里你完全可以自己遍历Products求和并返回一个Decimal类型的值。下面我们创建一个类用来实现依赖注入。ShoppingCart.cs如下所示:

 

    public class ShoppingCart

    {

        private IValueCalculator calculator;

        public ShoppingCart(IValueCalculator calcParam)

        {

            calculator = calcParam;

        }

 

        public decimal CalculateStockValue()

        {

            Product[] products = {

            new Product() { Name = "Kayak", Price = 275M},

            new Product() { Name = "Lifejacket", Price = 48.95M},

            new Product() { Name = "Soccer ball", Price = 19.50M},

            new Product() { Name = "Stadium", Price = 79500M}

                             };

            decimal totalValue = calculator.ValueProducts(products);

    &nb

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • 浅析.NET下XML数据访问新机制
    • asp.net 面试+笔试题目第1/2页
    • C# 邮件地址是否合法的验证
    • C#高级编程:数据库连接[1]
    • asp.net 设置GridView的选中行的实现代码
    • 经典C++程序1
    • IIS 自动回收导致后台定时器失效的问题解决
    • ASP.NET GridView列表代码示例
    • 微软ASP.NET站点部署指南(3):使用Web.Config文件的Transforma
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1