2010-11-25 10 views
2

RequestContextのデータは、コンストラクタが自分のドメインオブジェクトの1つで実行されるときに利用可能にする必要があります。次の例は私がすでにやっていることです。ドメインオブジェクトのコンストラクタにRequestContextデータを供給する方法は?

public Site(IDataUniverseService dataUniverse, IRegionService regionService) 
{ 
    this.DataUniverse = dataUniverse.GetDataUniverse(this.Id); 
    this.Region = regionService.GetRegion(this.Id, /* this value comes as a URL parameter */); 
} 

彼らはドメインから来ているためのStructureMapが簡単にサービスを供給することができますので、これは結構です。

しかし、どうすればRequestContextへのインターフェイスを提供することができますか?それとも私はこれを違うようにしなければなりませんか?

これは私が考えているものの一種である:

public Site(IDataUniverseService dataUniverse 
    , IRegionService regionService 
    , IRequestContext context) 
{ 
    var region = context.RouteData.Values["region"].ToString() 

    this.DataUniverse = dataUniverse.GetDataUniverse(this.Id); 
    this.Region = regionService.GetRegion(this.Id, region); 
} 

が、理想的には、IRequestContextはちょうどプロパティとしてその値が容易に入手できるだろう、というよりもRouteData.Values["region"].ToString()

答えて

4

は何に対応するパラメータを追加します。 RequestContextから必要な値を取得して、必要なデータを抽出して送信できるようにします。ドメインオブジェクトはリクエストコンテキストを直接処理すべきではありません。

関連する問題