У меня есть объект профиля в сеансе с информацией профиля для текущего пользователя.Я хочу иметь возможность внедрять его в свои бизнес-классы, чтобы я мог выполнять валидацию и т. Д. В них без необходимости передавать его в список параметров в каждом методе.
Я пробовал что-то подобное в моем модуле ninject:
Profile profile = HttpContext.Current.Session["Profile"] as Profile;
Bind<Profile>().ToConstant(profile).InTransientScope();
Однако, когда я выполняю Kernel.Get () в моем aspx, он взрывается нулевой ссылкой.BusinessObject принимает профиль через конструктор.Если я жестко закодирую профиль, а не использую HttpContext, тогда, похоже, все работает.Не уверен, что ToConstant - это путь, я действительно ищу что-то, что будет оцениваться каждый раз, когда создается новый BusinessObject.
ОБНОВЛЕНИЕ
Кажется, чтозапрос на внедрение в объектный объект уровня страницы слишком рано для того, чтобы коллекция сеансов была доступна.Если я перейду в Kernel.Get к Page_Load, он будет работать нормально.