我有一個.NET 4 WCF服務(MEX和HttpGET)。自定義WCF MessageFormatter
對於HttpGET端點,我想重寫默認的MessageFormatter.DeserializeRequest以將UriTemplate映射到強類型對象。
理想情況下,將使用自定義屬性來修飾應該使用此格式化程序的方法,但我不確定是否可以在這方面切換格式化程序。
這是可行的,有人可以通過app.config中所需的配置來引導我嗎?
我有一個.NET 4 WCF服務(MEX和HttpGET)。自定義WCF MessageFormatter
對於HttpGET端點,我想重寫默認的MessageFormatter.DeserializeRequest以將UriTemplate映射到強類型對象。
理想情況下,將使用自定義屬性來修飾應該使用此格式化程序的方法,但我不確定是否可以在這方面切換格式化程序。
這是可行的,有人可以通過app.config中所需的配置來引導我嗎?
如果你想爲WCF REST細粒度控制的格式,我建議以下兩種方法之一:
覆蓋WebHttpBehavior指定自己的消息格式。這給你很多控制權,但需要很多操作。 http://msdn.microsoft.com/en-us/library/system.servicemodel.description.webhttpbehavior.getrequestclientformatter.aspx
使用新的WCF Web API,它爲REST服務提供了更多的可配置性。 http://wcf.codeplex.com/wikipage?title=WCF%20HTTP。
但是,如果你想要做的就是地圖的某些查詢字符串參數來強類型的對象,你可以實現自己的QueryStringConverter類:
http://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.querystringconverter.aspx
和使用,在您的自定義WebHttpBehavior: http://msdn.microsoft.com/en-us/library/system.servicemodel.description.webhttpbehavior.getrequestclientformatter.aspx)。
感謝您的聯繫。 1.如何連接配置以指定WCF使用我的自定義WebHttpBehavior? 2.該服務也需要與傳統的mex端點一起使用。我的理解是,WebAPI僅適用於Http。 – Alfred 2012-03-15 16:36:17
一般而言WebHttp/REST並不意味着與mex端點/ WSDL一起使用。沒有基於WebHttp的WCF客戶端。你打算如何消費這樣一個mex端點? – Jeff 2012-03-15 16:40:26
另外,有沒有什麼方法可以確定被調用的服務方法,以確定應用哪個格式化程序? – Alfred 2012-03-15 16:43:42