小编bra*_*bow的帖子

使用ninject和c#.net实现条件依赖注入

我正在尝试学习依赖注入(DI)的基础知识.为此,我已经开始了一个教程,演示如何通过构建C#控制台应用程序来使用Ninject进行DI.

该应用程序本质上旨在能够使用不同的计算方法计算购物车中的项目的价值.

应用程序中的类是:

  • 一个简单的产品模型
  • 两个购物车类,作为产品集合的简单包装
  • ValueCalculator接口,它需要一个方法ValueProducts,它返回购物车中的一些项目
  • ValueCalculator接口的两个独立实现(迭代和LINQ方法)

我试图通过.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)

.net c# conditional dependency-injection ninject

4
推荐指数
1
解决办法
2027
查看次数

标签 统计

.net ×1

c# ×1

conditional ×1

dependency-injection ×1

ninject ×1