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類的構造,所以不會注入依賴關係。在結構圖中,我們不需要繼承任何接口來創建類的對象。 –