2010-01-08 4 views
5

우리는 WCF와 함께 사용자 지정 역할 공급자를 사용하게 될 것입니다. 재정의 된 GetRolesForUser 메서드는 기존 RoleRepository를 사용해야합니다.WCF를 사용하는 사용자 지정 역할 공급자에 대해 StructureMap을 통해 종속성 주입을 제공하는 방법은 무엇입니까?

이제는 평범한 클래스를 사용하여 StructureMap을 사용하여 구조를 만들고 RoleRepository 종속성을 생성자를 통해 주입합니다.

그러나 사용자 지정 역할 공급자 클래스를 구성하는 WCF이며 web.config의 roleManager 특성을 통해 선언적으로 '완료'되었습니다.

RoleRepository depndency를 사용자 지정 역할 probvider 클래스에 하드 와이어하지 않으려 고하지만 꼭해야 할 것처럼 보입니다.

아이디어가 있으십니까?

답변

6

RoleProvider 및 관련 유형은 DI 친화적이지 않은 것으로 악명 높은 ASP.NET의 유산입니다. 기본 생성자가 필요하며이를 초기화하는 데 제공되는 후크가 없습니다. 그것은 빤다. 그러나 그것은 그것이있는 방법이다.

이러한 상황에서 가장 좋은 방법은 RoleProvider를 Humble Object으로 구현하는 것입니다. 즉, RoleProvider는 모든 종속성을 연결해야하지만, 거기에서부터 모든 구현을 개방적이고 확장 가능한 API에 위임합니다.

+0

넵, 훌륭한 아이디어. – user129345