我似乎无法想象得到我在调用CreateDataSource时在silverlight客户端上填充的自定义标头。我有以下代码:
protected override CaseEntitiesContext CreateDataSource()
{
return new CaseEntitiesContext(CaseGuid, ConnectionString, Provider)
{
DefaultContainerName = "CaseEntitiesContext"
};
}
我从web.config获取ConnectionString和Provider,但需要从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"]);
};
我可以在CreateDataSource
获取Request对象的任何想法FYI:CaseEntitiesContext是一个自定义构造函数,它根据Guid创建EF以确定正确的db目录。
答案 0 :(得分:0)
答案是使用HttpContext.Current.Request,因为网站托管在标准的asp.net中