我如何使用Castle Windsor而不是这个?

时间:2010-10-01 23:00:51

标签: dependency-injection entity-framework-4 castle-windsor

我对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”结尾的类型名称更好的方法呢?

1 个答案:

答案 0 :(得分:1)

ModelBuilder取决于StructuralTypeConfigurationyou will need a CollectionResolver as well)的收集。

注册所有StructuralTypeConfiguration实施。

DbModel应注册.UsingFactoryMethod(k=>k.Resolve<ModelBuilder>().CreateModel())