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())