в решении несколько взаимосвязанных проектов слоев (DAL использует DB, BLL использует DAL, веб приложение использует BLL). Изначально я делал все ригистрации в проекте веб приложени, но мне сказали переделать так, чтобы каждый слой имел ссылку только на следующий, для этого надо Ninject регистрации делать в каждом слое до своих сущностей. Но я не понимаю как это реализовать. Ninject я реализую так, создаю класс регистраций, который наследуется от NinjectModule а потом регистрирую их с помощью класса Kernel в классе Global( ASP.NET MVC),В точности названий не уверен, но как то так они называются, я просто сейчас не перед компьютером. Как мне реализовать это, если класс регистрации будет находится в каждом проекте?
не использовать нинжект!
А что посоветуете использовать?
простые и БЫСТРЫЕ контейнеры - SimpleInjector, DryIoc, да даже встроенный аспнетовский
Лично мне симплеинжектор не нрав, тк там нет разделения между этапом регистрации и этапом резолва на уровне типов
Тупо поле IsLocked
Да как же нет, если контейнер лочится после первого ресолва
лочится после первого резолва, вот именно. А хотелось бы идею с Container и ContainerBuilder, чтобы даже соблазна не было зарегать в залоченном контейнере
так в автофаке сделано кста
прости, а как ты регаешь в контейнере после ресолва? Ты что, контейнер инжектишь? :D
там есть публичные методы на нём. Я понимаю, что это плохо, но я не хочу, чтобы мне даже иде подсказывала их
да в смысле, твой контейнер виден должен быть только в композишн руте
ну в одном прожекте такая говноархитектура была, что там контейнер юзался, как сервис провайдер местами
короче, тут не симплинжектор виноват, да
Обсуждают сегодня