2012-04-20 7 views
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" /> 

答えて

1

私はそれがあなたの財産を設定することができるようにRequirePermissionAttributeはのStructureMapによって解決されていないことを推測します。属性はコンパイル時に使用するため、追加の手順を実行する必要があります。

ControllerFactoryまたはDependencyResolverを使用してDIを有効にしてControllerFactoryを使用しているかどうかわかりませんActionInvokerプロパティの実装を提供するために使用しました。

ここにいくつかの情報があります:http://www.jeremyskinner.co.uk/2008/11/08/dependency-injection-with-aspnet-mvc-action-filters/。それは古いですが、依然として適用可能です。

+0

この記事をお寄せいただき、ありがとうございます。 – NullReference

関連する問題