我正在尝试学习依赖注入(DI)的基础知识.为此,我已经开始了一个教程,演示如何通过构建C#控制台应用程序来使用Ninject进行DI.
该应用程序本质上旨在能够使用不同的计算方法计算购物车中的项目的价值.
应用程序中的类是:
我试图通过.WhenInjectedTo扩展方法使用条件注入,这样ShoppingCart对象就会注入一个LinqValueCalculator,而ShoppingCartTwo对象会注入一个IterativeValueCalulator.但是,在这两种情况下都会注入LinqValueCalculator.
见下面的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ninject;
namespace NinjectDemo
{
// a simple product model
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; }
}
// calculator interface
public interface IValueCalculator
{
decimal ValueProducts(params Product[] products);
} …Run Code Online (Sandbox Code Playgroud)