I\'m developing a WCF web service that returns this:
{
\"allFormsResult\": [
{
\"FormId\": 1,
\"FormName\": \"Formulario 1\"
The problem is here:
namespace ADM
{
[ServiceContract]
public interface IRestServiceImpl
{
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "forms/")]
List<FormContract> allForms();
}
}
I have to use it this way:
namespace ADM
{
[ServiceContract]
public interface IRestServiceImpl
{
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "forms/")]
List<FormContract> allForms();
}
}
Changing BodyStyle
:
BodyStyle = WebMessageBodyStyle.Bare
This behavior can also be set as default through the Web.Config, without the need to add the attributes directly to the contract.
<services>
<service name="MyServiceNameSpace.MyServiceClass">
<endpoint
address="http://yourservicedomain.ext/MyServiceClass.svc/"
binding="webHttpBinding"
contract="MyServiceNameSpace.MyServiceContract"
behaviorConfiguration="MyEndpointBehavoir"
listenUri="/" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="MyEndpointBehavoir">
<webHttp defaultOutgoingResponseFormat="Json" defaultBodyStyle="Bare"/>
</behavior>
</endpointBehaviors>
</behaviors>