2011-08-08 3 views
0

CreateDataSourceが呼び出された時点でSilverlightクライアントに設定されたカスタムヘッダーを取得できないようです。私は次のコードを持っています:CreateDataSource WCF DataServices

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

私はConnectionStringとProviderをweb.configから取得しますが、RequestHeaderからCaseGuidを取得する必要があります。

コンストラクタまたはインラインで次のコードを追加すると、コードは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"]); 
    }; 

/どのように私はFYI CreateDataSource

でRequestオブジェクトを取得することができます任意のアイデア:CaseEntitiesContextは正しいDBカタログを決定するためのGuidに基づいてEFを作成するカスタムコンストラクタです。

答えて

0

答えは、Webサイトが標準asp.netでホストされているので、HttpContext.Current.Requestを使用することです

関連する問題