0

Я реализую членство в Windsor MemberhipProvider с классом. Я могу разрешить реализацию, но не вызывает метод Initialize, который извлекает значения из web.config. Как я могу создать экземпляр этого метода и убедиться, что он вызывает метод Initialize?Использование MembershipProvider с Виндзорским замком

код для добавления в контейнер

container.Register(Component.For<FNHMembershipProvider>() 
    .LifeStyle.Transient 
    .Named("myMembershipProvider")); 

container.Register(Component.For<FNHRoleProvider>() 
    .LifeStyle.Transient 
    .Named("myRoleProvider")); 

ответ

0

Ключевым моментом здесь является то, что вы не инъекционного класс членства, вы укола членство ПРОВАЙДЕР. Класс Membership - это то, что устанавливает поставщик членства на основе записей в реестре и вызывает intialize. Класс Membership является статическим классом, и вы не можете его вводить (хотя вы можете ввести класс-оболочку, возвращающий статический класс Membership, но я не вижу там много преимуществ).

В общем, я считаю, что это больше боль, чем его ценность, чтобы попытаться использовать членство в DI.

+0

Я должен использовать DI, хотя исходя из моих требований. Итак, я бы создал оболочку, ввел ее в свой контроллер, а затем вызвал эту оболочку в GetUser, создал пользователя и т. Д.? – Reaction21

+0

Да, это путь. Я предполагаю, что это подход, который вы найдете в скелете приложения, поставляемого с шаблоном VS для приложения mvc3. Шаблон не использует DI, но очень легко понять, как переключиться на DI. – Crixo

Смежные вопросы