2012-05-11 61 views
0

我有以下windsor語句,並試圖將其轉換爲結構圖語句。我真的找不到任何建議如何去做。從windsor重構聲明到結構圖

Container.Register(AllTypes.FromThisAssembly(). 
    BasedOn<IType>().If(MatchStatement).Configure(c => c.LifeStyle.Transient. 
    Named(c.Implementation.Name))); 

任何人都知道這是怎麼寫的結構圖?

編輯:爲了使它更清楚..我有上面的(幾乎任何地方)與溫莎城堡寫的聲明,但因爲我們將使用結構圖,而不是我需要做同樣的,但與Structuremap。我得到了一些但不是全部;

 Registry.Scan(x => 
          { 
           x.TheCallingAssembly(); 
           x.AddAllTypesOf<IType>(); 
           //{What more?} 
          }); 

我還需要滿足MatchStatement條件並返回指定的實例。

+0

你能解釋一下你想達到的目的嗎?您是否想要使用瞬態生命週期註冊並連接IType的所有實現與特定名稱? – Rookian

+0

是的,這是正確的。它還需要滿足條件MatchStatement(布爾表達式)這是因爲我們正在從溫莎轉移到結構圖。最麻煩的是條件部分。 – Per

+0

這種情況有什麼作用?這是一個布爾? – Rookian

回答

0

StructureMap的默認生命週期是PerGraph(混合了瞬態和單態)。

以下代碼掃描調用程序集並添加IType的所有實現,並且每個實現都使用實現的名稱進行註冊。

Scan(scan => 
{ 
    scan.TheCallingAssembly(); 
    scan.AddAllTypesOf<IType>().NameBy(type => type.Name);  
});