CreateDataSource WCF DataServices - PullRequest
       1

CreateDataSource WCF DataServices

0 голосов
/ 08 августа 2011

Кажется, я не могу получить пользовательский заголовок, который я заполняю на клиенте silverlight во время вызова CreateDataSource.У меня есть следующий код:

protected override CaseEntitiesContext CreateDataSource()
{
  return new CaseEntitiesContext(CaseGuid, ConnectionString, Provider)
  {
    DefaultContainerName = "CaseEntitiesContext"
  };
}

Я получаю ConnectionString и Provider из web.config, но мне нужно получить CaseGuid из RequestHeader.

Если я добавлю следующий код либо в конструкторе, либо в строке, код будет выполняться после CreateDataSource.

      ProcessingPipeline.ProcessingRequest += (o, args) =>
    {
      CaseGuid = new Guid(args.OperationContext.RequestHeaders["caseguid"]);
      Debug.WriteLine("request case guid:" + args.OperationContext.RequestHeaders["caseguid"]);
      Debug.WriteLine("CaseRequest Processing HTTP {0} request for URI {1} Case Guid {2}",
          args.OperationContext.RequestMethod,
          args.OperationContext.AbsoluteRequestUri,
          args.OperationContext.RequestHeaders["caseguid"]);
    };

Любые идеи, где и как я могу получить объект Request в CreateDataSource

FYI: CaseEntitiesContext - это пользовательский конструктор, который создает EF на основе Guid для определения правильного каталога БД.

1 Ответ

0 голосов
/ 08 августа 2011

Ответ заключается в использовании HttpContext.Current.Request, поскольку веб-сайт размещен на стандартном asp.net

...