Как предоставить данные RequestContext конструктору объекта домена? - PullRequest
2 голосов
/ 26 ноября 2010

Мне нужно, чтобы данные из RequestContext были доступны, когда конструктор выполняется на одном из моих объектов Domain.Следующий пример - это то, что я уже делаю.

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

1 Ответ

4 голосов
/ 26 ноября 2010

Добавьте параметры, соответствующие тем, какие значения вам нужны, из RequestContext, чтобы вызывающая сторона могла извлечь необходимые данные и отправить только это.Ваши доменные объекты не должны иметь дело с контекстом запроса напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...