2010-11-25 61 views
2

當構造函數在我的一個Domain對象上執行時,我需要從RequestContext獲得數據。下面的例子就是我已經在做的事情。如何將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獲取值,以便調用者可以提取必要的數據並僅發送該數據。你的域對象不應該直接處理請求上下文。

相關問題