Ninject Contextual绑定在运行时取决于特定值

时间:2014-12-04 16:07:36

标签: c# asp.net-web-api ninject.web.mvc

我的方案如下:

我有一个界面IVendor。我有三个不同的类来实现这一点,我们称之为Vendor1Vendor2Vendor3

我有一个web api电话,它将为我提供供应商的产品。当然,每个供应商都有自己的检查可用性过程,因此接口公开了CheckAvailability方法。

所以在我的电话中我有类似的东西:

public bool Get(int productId)
{
    var product = GetProductByID(productId);
    switch(product.VendorId)
    {
        case 1:
            return Vendor1(CheckAvailability(product.VendorProductCode));
            break;
        case 2:
            return Vendor2(CheckAvailability(product.VendorProductCode));
            break;
        case 3:
            return Vendor3(CheckAvailability(product.VendorProductCode));
            break;
        default:
            return false;
            break;
    }
}

这非常简单,当然我不喜欢它。我想能够打电话给

public bool Get(int productId)
{
    var product = GetProductByID(productId);
    return IVendor.CheckAvailability(product.VendorProductCode)
}

和IVendor通过Ninject注入任何需要的东西。我在问一些疯狂的事吗?这甚至可能吗?

0 个答案:

没有答案