2012-11-20 26 views
1

我有3個項目。帶有兩個初始化程序的StructureMap

1 
/\ - inheritance 
2 3 

1項目有ObjectFactory.Initialize ... 我有1個接口和兩個實現。 我想爲兩個和三個項目使用兩種不同的實現。 我該怎麼辦? 是否可以使用StructureMap?

回答

1

解決方案finded。 在基地項目我應該初始化:

ObjectFactory.Initialize(x => x...) 

但在依賴的項目,我應該基地項目初始化後配置:

ObjectFactory.Configure(x => x...) 
1

StructureMap不是限制因素。你的2個界面實現是在哪個項目中進行的?

如果他們在項目2和3中,那麼您需要在項目2和項目3中執行ObjectFactory.Initialize,您將知道您要使用哪個接口的實現。

如果它們在項目1中,則可以在項目1中創建兩個新類,以項目2和3所需的方式初始化容器,然後確保爲每個相應項目使用適當的類。

在這兩種情況下,您需要兩種不同的方法來構建容器以支持最終結果,在您的案例中,這是項目2和3。

+0

我有加初始化到我的2個3個項目。現在它的工作是這樣的: - 執行基礎初始化器; - 執行2或3個項目的初始化程序; 但它會拋出異常,如果我試圖做一些使用基本初始化中定義的任何實現。 如果我反向調用它,從「initializator for project」引發實現異常。 –

+0

你可以編輯你的文章,並顯示你的基礎初始值設定項目和初始值設定項目2或3?另外,當您在基礎初始化程序中使用實現時,是否可以顯示引發異常的示例? –