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()