如何用结构图设置属性注入?

时间:2012-04-20 16:19:41

标签: asp.net-mvc dependency-injection structuremap

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

1 个答案:

答案 0 :(得分:1)

我猜结构地图无法解析RequirePermissionAttribute ,因此可以设置属性。属性是编译时间,因此您必须采取其他步骤来启用此功能。

我不知道您是使用ControllerFactory还是DependencyResolver来启用DI,但是我使用的是一个ControllerFactory来提供ActionInvoker属性的实现。

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