Как мне исключить тип извне из сканирования реестра, которое его нашло? - PullRequest
1 голос
/ 11 января 2012

В тесте я хочу добавить реестр, а затем исключить тип, который, как я знаю, был найден из сканирования в реестре.Вот настройки.

ObjectFactory.Configure(x =>
{
    x.AddRegistry<DefaultConventionsRegistry>();
    x.Scan(scanner => scanner.ExcludeType<RunBanks>());
});

Вот реестр:

public class DefaultConventionsRegistry : Registry
{
    public DefaultConventionsRegistry()
    {
        Scan(scanner =>
        {
            scanner.Assembly(AssemblyNames.WebAssemblyName);
            scanner.WithDefaultConventions();
            scanner.AddAllTypesOf<IHandles>();
        });
    }
}

RunBanks не наследуется напрямую от IHandles.Он наследует от абстрактного базового класса, который наследует от открытого универсального интерфейса, который наконец наследуется от IHandles.

Я ожидаю, что RunBanks будет исключен из контейнера, но если я вызову

ObjectFactory.GetAllInstances<IHandles>();

Экземпляр типа RunBanks существует.Если я явно исключу тип RunBanks из DefaultConventionsRegistry, тогда все будет работать как положено, но я не хочу этого делать.

1 Ответ

0 голосов
/ 14 января 2012

Я собираюсь проверить это позже, но у меня есть ощущение, что причина исключения конкретного типа не работает, потому что я не говорю сборке, где сканировать.Я обновлю этот ответ позже, когда узнаю наверняка.

...