我对Castle Windsor有基本的工作知识,但我无法弄清楚以下代码的DI等价物......
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”结尾的类型名称更好的方法呢?
答案 0 :(得分:1)
让ModelBuilder
取决于StructuralTypeConfiguration
(you will need a CollectionResolver
as well)的收集。
注册所有StructuralTypeConfiguration
实施。
DbModel
应注册.UsingFactoryMethod(k=>k.Resolve<ModelBuilder>().CreateModel())