Как внедрить репозитории в пользовательский MembershipProvider? - PullRequest
1 голос
/ 07 декабря 2011

Кажется, я не могу заставить это работать. Я создал пользовательский MembershipProvider и хочу добавить хранилище внутрь, но свойство [Inject] просто не работает.

  public class PyrosphereMembershipProvider : MembershipProvider
    {
        [Inject]
        protected IDepositoireUtilisateur DepositoireUtilisateur { get; set; }

        [Inject]
        protected IDepositoireProfile DepositoireProfile { get; set; }
...

Я думаю, это потому, что этот класс создан задолго до запуска приложения MVC, что вызывает реальную проблему. У меня больше проблем с попыткой использовать membershipprovider, чем с созданием моей собственной системы.

О моей исходной конфигурации я использую метод каталога App_Start. Все мои привязки верны, я выглядел так, что не имею ничего общего с моими привязками.

Любая помощь приветствуется!

1 Ответ

3 голосов
/ 07 декабря 2011

Поставщики ASP.NET не предназначены для правильного внедрения зависимостей. Для них есть только обходные пути.

Либо вам нужно установить для них привязку и разрешить хотя бы один экземпляр перед их использованием. Например. путем внедрения экземпляра в Global.asax или вам нужно вручную вставить экземпляр перед первым использованием (kernel.Inject(...)). Снова, скорее всего, в методе запуска приложения global.asax.

...