2011-11-13 33 views
0

我試圖使用結構映射實例化一個類的所有子類。 我將如何做到這一點,我將如何控制他們的lifecylce?實例化結構映射中的所有子類

我有一個基類型,其他開發者繼承它來構建它們的類。我希望實例化所有這些子類並調用它們的方法。

+0

,發現這類型的從你的類繼承或者實例化類型T的對象? –

+0

你想獲得所有派生類型的列表嗎? – Steven

回答

2

你可以做批量註冊這樣的:

container.Configure(r => 
{ 
    foreach (var assembly in 
     AppDomain.CurrentDomain.GetAssemblies()) 
    { 
    r.Scan(s => 
    { 
     s.Assembly(assembly); 
     s.AddAllTypesOf<MyBaseType>(); 
    }); 
    } 
}); 

而且你可以解決所有註冊的類型如下:

你想要哪個位與幫助
IList<MyBaseType> filters = 
    container.GetAllInstances<MyBaseType>();