Я использую Ninject, чтобы сделать инъекцию зависимости.(Главным образом для DAL), мой проект состоит из 3-х аспектов:
- Project.Lib (Все базы данных, сервисы и все остальное, что является логикой)
- Project.Admin (Администрирование)
- Project.Web (интерфейс пользователя, который видит пользователь)
Теперь каждый из моих контроллеров в моих проектах наследуется от BaseController
public abstract class BaseController : Controller
{
protected BaseController(ISession session)
{
_Session = session;
}
public ISession _Session { get; private set; }
}
И тогда и пример контроллера может быть таким,
public class ImageController : BaseController
{
private MediaService _mediaService;
public ImageController(ISession session) : base(session)
{
_mediaService = new MediaService(session);
}
[HttpGet]
public ActionResult List()
{
var RetVal = _mediaService.GetAllImages();
return View(RetVal);
}
}
Как вы можете видеть, "Сеанс" передается от контроллера на уровень обслуживания.Мне любопытно, если это хорошая практика?Любые негативы к тому, что мы здесь делаем?