После добавления базового класса конфигурации кода для 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, но не нашел решения для этой конкретной проблемы.