2016-01-10 82 views
1

我正在爲我的應用程序使用DevExpress,XAF和XPO。我需要從web服務公開我的數據。 ASP.NET Web API V2與XPO對象不兼容...(如果您發現如何...我會接受它!)。WCF:生成JSON不起作用

的DevExpress的嚮導可以幫助我產生一個WCF Web服務項目,其中

  • MyContext從XpoContext繼承
  • 爲MyService從XpoDataServiceV3繼承(類有一個屬性:[JSONPSupportBehavior])

我會得到我的XPO對象名單,爲此,我寫了下面的代碼

[WebGet] 
public IQueryable<MyType> Get() 
{ 
    return new XPQuery<MyType>(new UnitOfWork()); 
} 

我在WebGet屬性上找到了各種屬性:RequestFormat,ResponseFormat,BodyStyle,UrlTemplate。在Format屬性上,我有WebMessageFormat.Json和WebMessageFormat.Xml之間的選擇。從邏輯上講,我輸入WebMessageFormat.Json。

當我去我最喜歡的網頁瀏覽器或小提琴手,我做的這個請求:

GET http://localhost:51555/MyService.svc/Get HTTP/1.1 
User-Agent: Fiddler 
Host: localhost:51555 
Content-Type: application/json 

但是,這並不工程...的反應是:

HTTP/1.1 200 OK 
Cache-Control: no-cache 
Content-Length: 24250 
Content-Type: application/atom+xml;type=feed;charset=utf-8 
Server: Microsoft-IIS/10.0 
... 

和內容是在XML中寫道。

我們都還好,我有我的配置與格式屬性查詢...:

[WebGet(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] 

回答

1

我找到了!在你的WCF服務全球班上,寫下如下代碼:

HttpContext.Current.Request.Headers.Add("Accept", "application/json;");