0
在我的应用程序配置structuremap像strucutreMap依赖注入不工作
public class DefaultRegistry : Registry {
#region Constructors and Destructors
public DefaultRegistry() {
Scan(
scan => {
scan.Assembly("Eterp.Data.ErpCore");
scan.Assembly("Eterp.Data.Seed");
scan.Assembly("Eterp.Application.ErpCore");
scan.TheCallingAssembly();
scan.WithDefaultConventions();
});
ForConcreteType<AclAuthorizationManager>().Configure.Ctor<IResourceOperationAppService>()
}
#endregion
}
,我有类
public class AclAuthorizationManager : ClaimsAuthorizationManager
{
private readonly IResourceOperationAppService _resourceOperationAppService;
public AclAuthorizationManager(IResourceOperationAppService resourceOperationAppService)
{
_resourceOperationAppService = resourceOperationAppService;
}
public override bool CheckAccess(AuthorizationContext context)
{
var isCurrentUserAuthorized = context.Principal.Identity.IsAuthenticated;
return isCurrentUserAuthorized && _resourceOperationAppService.CanAccessResource(context.Action.FirstOrDefault().Value, context.Principal.Claims);
}
}
这个类是定制要求授权类使用我的应用程序,但是当我exceuting应用程序,我得到一个错误,这与构造函数所需的缺少参数有关(该类具有参数类型为IResourceOperation的构造函数)。但我已经在structureMap中配置了所有的细节。我相信我的结构图配置在100%的工作状态下很好地期望创建这个AclAuthorizationManager类,因为我能够在其他类中应用DI。
我的代码中出现了什么问题?
实际上问题解决了,在我的情况下,由.Net运行时处理Authorization类的构造,所以不会注入依赖关系。在结构图中,我们不需要继承任何接口来创建类的对象。 –