普通的 OData 查询只是一个 URL。
我有一个使用 WCF 数据服务 (OData) 的 WPF 应用程序,我希望能够启用对发送到服务器进行解析的每个 url 的日志记录。(跟踪性能问题和重复查询。)
有没有办法插入 WCF 数据服务的客户端调用以获取此 URL,然后再将其发送到服务器?(理想情况下,当它回到(用于单个查询的性能分析。)
普通的 OData 查询只是一个 URL。
我有一个使用 WCF 数据服务 (OData) 的 WPF 应用程序,我希望能够启用对发送到服务器进行解析的每个 url 的日志记录。(跟踪性能问题和重复查询。)
有没有办法插入 WCF 数据服务的客户端调用以获取此 URL,然后再将其发送到服务器?(理想情况下,当它回到(用于单个查询的性能分析。)
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
.