1

我有溫莎城堡的基本操作知識,但我想不通的DI相當於下面的代碼...如何使用Castle Windsor而不是此?

private static DbModel BuildModel() 
    { 
     var builder = new ModelBuilder(); 
     var types = Assembly.GetExecutingAssembly().GetTypes(); 

     foreach (var type in types) 
     { 
      if (type.Name.EndsWith("Configuration")) 
      { 
       var entityConfiguration = Activator.CreateInstance(type); 
       var xx = entityConfiguration as StructuralTypeConfiguration; 
       builder.Configurations.Add(xx); 
      } 
     } 

     var model = builder.CreateModel(); 
     return model; 
    } 

這是爲了自動加載所有的配置類的EF4代碼第一個場景。

理想情況下,我希望它能根據StructuralTypeConfiguration獲得我裝配中的所有課程。

我吠叫錯誤的樹試圖使用DI爲此?如果是這樣,有沒有比獲取以「Configuration」結尾的類型名稱更好的方法?

回答

1

品牌ModelBuilder取決於收集的StructuralTypeConfigurationyou will need a CollectionResolver as well)。

註冊全部StructuralTypeConfiguration實現。

DbModel應註冊.UsingFactoryMethod(k=>k.Resolve<ModelBuilder>().CreateModel())