当构造函数在我的Domain对象之一上执行时,我需要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()

最佳答案

添加与您需要的RequestContext值对应的参数,以便调用者可以提取必要的数据并仅发送该数据。您的域对象不应直接处理请求上下文。

09-10 03:07