2

普通的 OData 查询只是一个 URL。

我有一个使用 WCF 数据服务 (OData) 的 WPF 应用程序,我希望能够启用对发送到服务器进行解析的每个 url 的日志记录。(跟踪性能问题和重复查询。)

有没有办法插入 WCF 数据服务的客户端调用以获取此 URL,然后再将其发送到服务器?(理想情况下,当它回到(用于单个查询的性能分析。)

4

1 回答 1

4

DataServiceContext您可以在每次触发事件时监听其中一个事件并记录请求 URL。例如:

var context = new DataServiceContext(new Uri("http://services.odata.org/v3/OData/OData.svc"));
context.BuildingRequest += (sender, eventArgs) => Console.Out.WriteLine(eventArgs.RequestUri);

或者,监听 SendingRequest2 也可以:

context.SendingRequest2 += (sender, eventArgs) => Console.Out.WriteLine(eventArgs.RequestMessage.Url);

对于记录 URL,监听任一事件应该没问题。如果在某些时候,您还想在发送请求之前修改传出 URL,请使用BuildingRequest.

于 2013-07-01T23:33:18.477 回答