Как я могу использовать замок Виндзор вместо этого? - PullRequest
1 голос
/ 02 октября 2010

У меня есть базовые знания Касл Виндзор, но я не могу найти 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 для этого? Если так, есть ли лучший способ сделать это, чем получить имена типов, оканчивающиеся на «Конфигурация»?

1 Ответ

1 голос
/ 02 октября 2010

Сделать ModelBuilder зависимым от набора StructuralTypeConfiguration ( вам также потребуется CollectionResolver ).

Зарегистрировать все StructuralTypeConfiguration реализации.

DbModel должен быть зарегистрирован .UsingFactoryMethod(k=>k.Resolve<ModelBuilder>().CreateModel())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...