Как использовать Ninject.Web.PageBase вместе с другим, настраиваемым .NET PageBase - PullRequest
0 голосов
/ 04 августа 2011

Я пытаюсь заставить Ninject работать с приложением WebForms, в котором уже есть пользовательский объект PageBase. Но я не знаю наверняка, смогу ли я использовать объект PageBase Ninject вместе с другим, пользовательским PageBase. Я долго искал, чтобы посмотреть, смогу ли я найти ответ на эту проблему или узнать, как это сделать, но все, что я нашел, это:

Я взломал альтернативу, используя общий базовый класс, который происходит от С. Это выглядит примерно так

public abstract class PageBase : Page
{
  public IKernel Kernel { get; private set; }
  public PageBase() { Kernel = ...; }
  public void Page_Init() { Kernel.Inject(this); }
} 

Это позволит вам внедрять свойства и методы на любые страницы, которые наследовать от PageBase. Обратите внимание, что конструктор неполон - вам нужно будет получить доступ к ядру статическим способом. Вам следует быть в состоянии прочитать это из HttpApplication как-то.

(источник: http://groups.google.com/group/ninject/browse_thread/thread/317fc48387399aa6, связан с Нет с веб-формами ASP.Net и MVC ):

Похоже, это может сработать для меня, потому что кажется, что я мог бы применить этот код к существующей пользовательской PageBase. Но я застрял в той части, в которой автор говорит: «... конструктор неполон - вам придется обращаться к ядру статическим способом».

Кто-нибудь знает, что означает это предложение и как можно получить статический доступ к ядру Ninject?

1 Ответ

4 голосов
/ 05 августа 2011

Вам не нужно извлекать данные из базы страниц Ninject. Вы также можете использовать NinjectHttpModule.

https://github.com/ninject/ninject.web/blob/master/src/Ninject.Web/NinjectHttpModule.cs

...