Исключить тип из регистрации в DryIoc

Как я могу сказать DryIoc никогда не регистрировать определенный тип?

Я попытался использовать параметр serviceTypeCondition в RegisterMany:

registrator.RegisterMany(new[] { typeof(DemoClass).GetAssembly() }, 
    serviceTypeCondition: (type) =>
    {
        var name = type.Name;
        return name != "SkipMyName";
    }

Но похоже, что DryIoc все еще пытается прочитать / оценить класс "SkipMyName". И если он не предназначен для DI - я получаю исключение из DryIoc (скажем, у класса есть два открытых конструктора). По замыслу - мне не нужно, чтобы его регистрировали в DI.

Так есть ли способ сообщить DryIoc об исключении типа из регистрации?

1 ответ

Решение

Отфильтруйте типы реализации, а не производные типы служб:

var implTypes = typeof(DemoClass)
    .GetAssembly()
    .GetLoadedTypes()
    .Where(t = t.Name != "SkipMyName");

registrator.RegisterMany(implTypes);
Другие вопросы по тегам