Исключить тип из регистрации в 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);