1
如何在攔截OnStartProcessingRequest()方法中的傳入OData獲取請求時獲取實體(表格)名稱? 例如:我想從以下的OData URI從WCF數據服務請求中獲取實體名稱
http://dataserver.com/service.svc/MusicCollection[SomeSong]/Genre得到MusicCollection和流派實體名稱
如何在攔截OnStartProcessingRequest()方法中的傳入OData獲取請求時獲取實體(表格)名稱? 例如:我想從以下的OData URI從WCF數據服務請求中獲取實體名稱
http://dataserver.com/service.svc/MusicCollection[SomeSong]/Genre得到MusicCollection和流派實體名稱
這是OdataUriParser一個完美的使用!當我們說話時,它處於積極的,漸進式的發展中,目前有過濾器和orderby解析器可供使用,並且在我們完成開發時還會有更多。我們還沒有發佈解析器的部分,它將處理您的具體情況(它仍處於積極的開發階段),但是有一個實驗版本(正式版本基於此)可以同時使用。看看這裏的OData貢獻庫:http://nuget.org/packages/Microsoft.Data.OData.Contrib。具體而言,這樣的事情:
Uri requestUri = new Uri("http://dataserver.com/service.svc/MusicCollection(SomeSong)/Genre");
Uri baseUri = new Uri("http://dataserver.com/service.svc/")
SyntacticTree parsedUri = SyntacticTree.ParseUri(requestUri, baseUri);
產生的SyntacticTree將有你的URI分解成QueryTokens,只是走的樹,找到正在尋找的路徑!