Питер, он имеет в виду стандартное сканирование, которое доступно в StructureMap. Он автоматически связывает IX и X, где X - это класс, который реализует интерфейс IX. Это работает так:
public override void Process(Type type, Registry registry)
{
if (!type.IsConcrete()) return;
Type pluginType = FindPluginType(type);
if (pluginType != null && Constructor.HasConstructors(type))
{
registry.AddType(pluginType, type);
ConfigureFamily(registry.For(pluginType));
}
}
public virtual Type FindPluginType(Type concreteType)
{
string interfaceName = "I" + concreteType.Name;
Type[] interfaces = concreteType.GetInterfaces();
return Array.Find(interfaces, t => t.Name == interfaceName);
}
Я также хотел бы знать, поддерживает ли Autofac аналогичную вещь. StructureMap позволяет вам определять свои собственные IRegistrationConvention. Это один из примеров конвенции.