/ / MVC 3 Ninject error - asp.net-mvc, ninject

MVC 3 Ninject error - asp.net-mvc, ninject

przestrzeń nazw NinjectDemo { Klasa publicznaProdukt { public int ProductID {get; zestaw; } public string Name {get; zestaw; } public string Opis {get; zestaw; } public decimal Cena {get; zestaw; } public string Kategoria {get; zestaw; } }

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

}

ninjectKernel.Bind (). To (); napisz błąd, jaki może być problem?

Odpowiedzi:

3 dla odpowiedzi № 1

DefaultDiscountHelper nie implementuje IValueCalculator

pewnie chcesz się związać IDiscountHelper