3

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

Я создаю класс, который расширяет ServiceAuthorizationManager и вызывает метод в моем репозитории для извлечения данных из БД, и я хотел бы, чтобы репозиторий был инжектирован в конструктор Ninject.

Однако WCF требует конструктора без параметров по умолчанию, чтобы использовать подтип ServiceAuthorizationManager.

Любая помощь?

ответ

2

Hy, Для таких случаев вы можете использовать инъекцию свойств. Просто объявить хранилище как свойство с Inject атрибута похоже на следующий псевдокод:

public class MyServiceAuthorizationManager : ServiceAuthorizationManager 
    { 
     [Inject] 
     IYourRepo Repository { get; set; } 
    } 

Вы можете сделать нормальную решительность пользовательского ServiceAuthorizationManager

+0

когда я делаю это свойство всегда нуль. Я не уверен, когда ServiceAuthorizationManager вызывается в конвейере WCF, но похоже, что он не поддерживает ядро ​​Ninject, чтобы разрешить мое свойство. Есть идеи? –

+0

Если я вызываю Ninject.Web.Common.Bootsrapper(). Kernel.Get (), я могу правильно разрешить и использовать объект. Не нравится это решение, так как у меня есть новый загрузчик. –

+0

btw, я создаю экземпляр bootstrapper и разрешаю свое репо в переопределении ServiceAuthorizationManager.CheckAccess (OperationContext) –

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