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を作成するカスタムコンストラクタです。