1
我的情況是這樣的:Ninject語境綁定在運行時根據特定值
我有一個接口IVendor
。我有三個不同的類實現這一點,讓我們打電話給他們Vendor1
,Vendor2
,Vendor3
。
我有一個網絡API調用,這將使我可以獲得供應商的產品。當然,每個供應商都有自己的檢查可用性程序,因此該界面公開了一種方法。
所以在我的電話,我有這樣的:
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。我在問一些瘋狂的事情嗎?這甚至有可能嗎?
您需要使用將實現此邏輯的工廠。不幸的是,我們還沒有達到這個水平,這可以在概念上完成。但是,工廠選項將在較低級別執行並提供正確的實施。 – Chris 2014-12-04 17:55:02
是否可以舉個例子? – 2014-12-04 17:56:35
我今晚可以晚上..在當時的工作 – Chris 2014-12-04 17:58:19