【问题标题】:How to supply RequestContext data to the constructor of a domain object?如何向域对象的构造函数提供 RequestContext 数据?
【发布时间】:2011-05-15 22:30:04
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net-mvc data-structures oop


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多