我有一个MVC属性,我需要使用属性注入和构造函数注入。我正在使用结构图来通过xml配置进行注入。该物业永远不会被设定,任何人都能看到我做错了什么?感谢
public class RequirePermissionAttribute: AuthorizeAttribute, IAuthorizationFilter
{
#region Fields
private readonly IPermissionService _permissionService;
#endregion
#region Properties
[SetterProperty]
public IPermissionService PermissionService
{
get
{
return _permissionService;
}
set
{
value = _permissionService;
}
}
...
配置文件
<DefaultInstance PluggedType="Service.Permissions.PermissionService,Service" PluginType="Service.Permissions.IPermissionService,Service" Scope="HttpContext" />
答案 0 :(得分:1)
我猜结构地图无法解析RequirePermissionAttribute
,因此可以设置属性。属性是编译时间,因此您必须采取其他步骤来启用此功能。
我不知道您是使用ControllerFactory还是DependencyResolver来启用DI,但是我使用的是一个ControllerFactory来提供ActionInvoker
属性的实现。
你可以在这里找到一些信息:http://www.jeremyskinner.co.uk/2008/11/08/dependency-injection-with-aspnet-mvc-action-filters/。它已经过时但仍然适用。