0

我有一个 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" />
4

1 回答 1

1

我猜这RequirePermissionAttribute 不是由 StructureMap 解决的,因此它可以设置您的属性。属性是编译时间,因此您必须采取额外的步骤来启用它。

我不知道您是使用 ControllerFactory 还是 DependencyResolver 来启用 D​​I,但我曾经使用 ControllerFactory 来提供ActionInvoker属性的实现。

你可以在这里找到一些信息:http: //www.jeremyskinner.co.uk/2008/11/08/dependency-injection-with-aspnet-mvc-action-filters/。它很旧,但仍然适用。

于 2012-04-20T16:40:15.780 回答