MVC 3 Ninject error - PullRequest
       3

MVC 3 Ninject error

0 голосов
/ 16 февраля 2012

    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; }
        }</p>

<code>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());
    }
}
</code>

}

ninjectKernel.Bind (). To ();ошибка записи, в чем может быть проблема?

1 Ответ

3 голосов
/ 16 февраля 2012

DefaultDiscountHelper не реализуется IValueCalculator

вероятно, вы хотите связать IDiscountHelper

...