Затем используйте его в своем вызове Scan:

чень нравится StructureMap как IOC-фреймворк, особенно регистрация на основе конвенции. Теперь я пытаюсь сделать следующее: я хочу добавить все типы, которые реализуют определенный интерфейс, когда у класса есть конструктор по умолчанию (без параметров). И типы должны быть созданы с помощью этого конструктора.

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

public class MyRegistry : Registry    
{
    public MyRegistry()
    {
        Scan(
           x =>
           {
               x.AssemblyContainingType<IUseCase>();
               x.Exclude(t => !HasDefaultConstructor(t));
               x.AddAllTypesOf<IUseCase>();
           });
    }
    private static bool HasDefaultConstructor(Type type)
    {
        var _constructors = type.GetConstructors();
        return _constructors.Any(c => IsDefaultConstructor(c));
    }

    private static bool IsDefaultConstructor(ConstructorInfo constructor)
    {
        return !constructor.GetParameters().Any();
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос