如何通过StructureMap为具有WCF的自定义角色提供程序提供依赖注入?

use*_*345 5 structuremap wcf dependency-injection roleprovider

我们将在WCF中使用自定义角色提供程序.重写的方法GetRolesForUser将需要使用已存在的RoleRepository.

现在,使用一个普通的类,我们使用StructureMap构造它,并且通过构造函数注入RoleRepository依赖项.

但是,它是WCF,它通过web.config中的roleManager属性来构造自定义角色提供程序类并且"完成".

我真的不想将RoleRepository depndency硬连接到自定义角色probvider类,但它看起来像我必须要的.

有任何想法吗?

Mar*_*ann 6

RoleProvider和相关类型是ASP.NET的遗产,因为它不是DI友好的而臭名昭着.它们需要一个默认的构造函数,并且没有提供初始化它们的钩子.它很糟糕,但就是这样.

在这种情况下,最好的解决方法是将RoleProvider实现为Humble Object.换句话说,RoleProvider必须连接所有依赖项,但从那里,它将所有实现委托给您自己的开放和可扩展API.