2009-04-16 3 views
3

こんにちは、すべて、私は依存性注入を実装する構造マップを使用しています。私はModelStateWrapperクラスを作成して、モデルの状態をサービスレイヤーに送りました。コンストラクターでModelStateのコントローラーの参照を取得します。 bootswrapperでは私は私のタイプを登録:コントローラModelState with ModelStateWrappper

ForRequestedType<ISourceService>() 
      .TheDefaultIsConcreteType<SourceService>(); 
ForRequestedType<IValidationDictionary>() 
     .TheDefaultIsConcreteType<ModelStateWrapper>(); 

私はここModelStateWrapperにコントローラのモデル状態の参照を与えることができますどのように?

P.S.申し訳ありません私の英語:)

答えて

2

あなたはより多くの情報を提供する必要があるが、これはあなたが持っているものに関して、私の最高の推測です:あなたはこの内の変数(コントローラのモデル状態を渡したい場合は

public class ModelStateWrapper : IValidationDictionary 
{ 
    ... 
    private readonly ModelState _modelState; 
    public ModelStateWrapper(ModelState modelState) 
    { 
      _modelState = modelState; 
    } 
    ... 
} 

ケース)をModelStateWrapperに渡すには、ObjectFactoryを呼び出すことによって、それを明示的に行う必要があります。

例:

MyController : Controller 
{ 
    ... 
    public MyAction() 
    { 
     ... 
     IValidationDictionary validationDictionary = ObjectFactory 
      .With<ModelState>(this.ModelState) 
      .GetInstance<IValidationDictionary>(); 
     ... 
    } 
    ... 
} 

詳細については、このドキュメントを参照してください:、返信用

Passing Arguments to StructureMap at Runtime

+0

おかげで、はい、私はこのような状況を持っていると私はBootswrapperファイルにIValidationDictionaryに、コントローラのにModelStateを設定したいですコントローラーではありません。これはできますか?または、私自身のベースコントローラクラスで設定する必要がありますか? –

関連する問題