Asp.net mvc MVC3Ninject错误

Asp.net mvc MVC3Ninject错误,asp.net-mvc,ninject,Asp.net Mvc,Ninject,名称空间NinjectDemo { 公共类产品 { public int ProductID{get;set;} 公共字符串名称{get;set;} 公共字符串说明{get;set;} 公共十进制价格{get;set;} 公共字符串类别{get;set;} } 公共接口计算器 { 十进制值产品(参数产品[]产品); } 公共类LinqValueCalculator:IValueCalculator { 私人IDiscountHelper折扣店; 公共LinqValueCalculator(ID

名称空间NinjectDemo { 公共类产品 { public int ProductID{get;set;} 公共字符串名称{get;set;} 公共字符串说明{get;set;} 公共十进制价格{get;set;} 公共字符串类别{get;set;} }

公共接口计算器
{
十进制值产品(参数产品[]产品);
}
公共类LinqValueCalculator:IValueCalculator
{
私人IDiscountHelper折扣店;
公共LinqValueCalculator(IDiscountHelper折扣参数)
{
折扣中心=折扣参数;
}
公共十进制值产品(参数产品[]产品)
{
退货折扣中心ApplyDiscount(products.Sum(p=>p.Price));
}
}
公共类购物车
{
私人计算器;
公共购物车(IValueCalculator calcParam)
{
计算器=计算器;
}
公共十进制CalculateStockValue()
{
产品[]产品={
新产品(){Name=“Kajak”,价格=275M},
新产品(){Name=“救生衣”,价格=48.95M},
新产品(){Name=“soccerball”,价格=19.50M},
新产品(){Name=“Stadium”,价格=795亿}
};
十进制totalValue=计算器.ValueProducts(产品);
返回总值;
}
}
公共接口IDiscountHelper
{
十进制ApplyDiscount(十进制totalParam);
}
公共类DefaultDiscountHelper:IDiscountHelper
{
公共十进制ApplyDiscount(十进制totalParam)
{
返回(totalParam-(10m/100m*totalParam));
}
}
班级计划
{
静态void Main(字符串[]参数)
{
IKernel ninjectKernel=新的标准内核();
ninjectKernel.Bind().To();
ninjectKernel.Bind().To();//错误
IValueCalculator calcImpl=ninjectKernel.Get();
ShoppingCart=新的ShoppingCart(calcImpl);
WriteLine(“Total:{0:c}”,cart.CalculateStockValue());
}
}
}

ninjectKernel.Bind().To();
写入错误,可能是什么问题?

DefaultDiscountHelper
未实现
IValueCalculator


您可能希望绑定
IDiscountHelper

DefaultDiscountHelper
不实现
IValueCalculator

您可能想绑定
IDiscountHelper

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

public interface IValueCalculator
{
    decimal ValueProducts(params Product[] products);
}

public class LinqValueCalculator : IValueCalculator
{
    private IDiscountHelper discounter;
    public LinqValueCalculator(IDiscountHelper discountParam)
    {
        discounter = discountParam;
    }
    public decimal ValueProducts(params Product[] products)
    {
        return discounter.ApplyDiscount(products.Sum(p => p.Price));
    }
}

public class ShoppingCart
{
    private IValueCalculator calculator;
    public ShoppingCart(IValueCalculator calcParam)
    {
        calculator = calcParam;
    }
    public decimal CalculateStockValue()
    {
        Product[] products = {
                                 new Product() {Name = "Kajak", 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);
        return totalValue;
    }
}

public interface IDiscountHelper
{
    decimal ApplyDiscount(decimal totalParam);
}
public class DefaultDiscountHelper: IDiscountHelper
{
    public decimal ApplyDiscount(decimal totalParam)
    {
        return (totalParam - (10m / 100m * totalParam));
    }
}

class Program
{
    static void Main(string[] args)
    {
        IKernel ninjectKernel = new StandardKernel();
        ninjectKernel.Bind<IValueCalculator>().To<LinqValueCalculator>();
        ninjectKernel.Bind<IValueCalculator>().To<DefaultDiscountHelper>();//error

        IValueCalculator calcImpl = ninjectKernel.Get<IValueCalculator>();
        ShoppingCart cart = new ShoppingCart(calcImpl);
        Console.WriteLine("Total: {0:c}", cart.CalculateStockValue());
    }
}