3

WCF 서비스의 ServiceAuthorizationManager 하위 유형에 저장소를 주입하는 방법을 아는 사람이 있습니까?Ninject 및 WCF ServiceAuthorizationManager

ServiceAuthorizationManager을 확장하는 클래스를 만들고 DB에서 데이터를 가져 오기 위해 내 리포지토리의 메서드를 호출하며 저장소를 Ninject에 의해 생성자에 삽입하려고합니다.

그러나 WCF에서는 ServiceAuthorizationManager 하위 유형을 사용하기 위해 기본 매개 변수없는 생성자가 필요합니다.

어떤 도움이 필요합니까?

답변

2

Hy, 그런 경우에는 속성 주입을 사용할 수 있습니다. 분사와 속성은 다음 의사 코드와 유사한 속성으로 그냥 저장소를 선언 : 나는이 작업을 수행 할 때 다음 사용자 지정 ServiceAuthorizationManager

+0

의 정상적인 해결을 할 수

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

,이 건물은 항상 null입니다. ServiceAuthorizationManager가 WCF 파이프 라인에서 호출되었지만 내 속성을 해결하기 위해 Ninject 커널을 확보하지 못하는 것 같지 않습니다. 어떤 아이디어? –

+0

Ninject.Web.Common.Bootsrapper(). Kernel.Get ()을 호출하면 객체를 올바르게 해석하고 사용할 수 있습니다. 부트 스트 래퍼를 새로 사용하면서이 솔루션이 마음에 들지 않습니다. –

+0

btw, 부트 스트 래퍼를 인스턴스화하고 ServiceAuthorizationManager.CheckAccess (OperationContext)의 재정의로 내 저장소를 해결하십시오. –