Для этой ошибки объекта не определен конструктор без параметров после добавления конфигурации EF на основе кода - PullRequest
0 голосов
/ 28 сентября 2018

После добавления базового класса конфигурации кода для EF с именем CustomDbConfiguration я получаю ошибку ' Для этого объекта не определен параметр без параметров ' для моего контроллера с именем CollectionsController ,После удаления все работает нормально.

Это мой класс конфигурации.Он пустой, но в данном случае это не имеет значения.

public class CustomDbConfiguration : System.Data.Entity.DbConfiguration
{
    public CustomDbConfiguration()
    {
    }
}

Я использую StructureMap 4.4.3 в качестве моего DI-контейнера.Вот как выглядит регистрация контроллеров:

public class ControllerRegistry : Registry
{
    public ControllerRegistry()
    {
        Scan(
            scan =>
            {
                scan.Assembly(".....");
                scan.WithDefaultConventions();
                scan.With(new ControllerConvention());
            });
    }
}

public class ControllerConvention : IRegistrationConvention 
{
    #region Public Methods and Operators

    public void Process(Type type, Registry registry) {
        if (type.CanBeCastTo<Controller>() && !type.IsAbstract) {
            registry.For(type).LifecycleIs(new UniquePerRequestLifecycle());
        }
    }

    public void ScanTypes(TypeSet types, Registry registry)
    {
        var typeList = types.AllTypes();
        foreach (var type in typeList)
        {
            if (type.CanBeCastTo<Controller>() && !type.IsAbstract)
            {
                registry.For(type).LifecycleIs(new UniquePerRequestLifecycle());
            }
        }
    }

    #endregion
}

, а это контроллер:

public class CollectionsController : Controller
{
    private readonly INoteService _noteService;
    private readonly IMapperService _mapperService;
    private readonly ISettingsService _settingsService;
    private readonly IPdfService _pdfService;

    public CollectionsController(
        INoteService noteService,
        IMapperService mapperService,
        ISettingsService settingsService,
        IPdfService pdfService)
    {
        _noteService = noteService;
        _mapperService = mapperService;
        _settingsService = settingsService;
        _pdfService = pdfService;
    }
    (...)
}

Я знаю, что в моем конструкторе нет параметровкод контроллера, но он прекрасно работал до добавления класса конфигурации EF.Если я добавлю отсутствующий конструктор, я получу разные ошибки с жалобами на сервисы, которые не инициализированы.Я рассмотрел все подобные вопросы по SO, но не нашел решения для этой конкретной проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...