Я использую StructureMap 4.7.0. Я знаю, что это было прекращено.
IRegistry
имеет Scan()
, что очень полезно, но при построении профилей мы получаем настраиваемый экземпляр IProfileRegistry
, который, кажется, не имеет Scan()
. Есть ли для этого особая причина, и можно ли это сделать по-другому? Я попытался привести мой IProfileRegistration
экземпляр к IRegistry
и использовать для него метод Scan()
, но он не добавит никакие типы в реестр моего профиля.
new Container(registry =>
{
registry.Profile("something", p =>
{
// p is IProfileRegistry which doesn't have Scan()
p.Scan(scanner =>
{
});
// I thought this cheat might work but it doesn't for some reason (the cast is valid)
(p as IRegistry).Scan(scanner =>
{
// scanner.Assembly.....
// scanner.AddAllTypes.....
// I also tried a custom convention adding types directly, to no avail
p.With(new MyCustomConvention());
});
// of course this works as expected
p.For<>().Use<>();
}
}