RESTful WCF服务可以在JSON(P)和XML中进行响应,仍然可以用作SOAP Web服务?

前端之家收集整理的这篇文章主要介绍了RESTful WCF服务可以在JSON(P)和XML中进行响应,仍然可以用作SOAP Web服务?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
给定合同如:
[ServiceContract] public interface IService
{
    [OperationContract]
    [WebGet(UriTemplate = "GetData/{id}.{format}")]
    ResponseData GetData(string id,string format);
}

有没有办法让服务响应json当请求时:
/GetData/1234.json,当请求作为/GetData/1234.xml时,xml仍然可以作为一个适当的肥皂服务在一些其他url,与强类型wsdl合同?

使用Stream作为GetData的返回值是不可行的,就像它符合前两个要求一样,wcf无法创建一个完整的wsdl规范,因为它不知道结果流的内容是什么.

解决方法

您应该有两个独立的方法,它们采用id和格式(并且它们将调用一个返回ResponseData的共享实现),它们具有不同的 WebGet attributes
[ServiceContract]
public interface IService
{
    [OperationContract]
    [WebGet(UriTemplate = "GetData/{id}.{format}.xml",ResponseFormat=WebMessageFormat.Xml)]
    ResponseData Getdataxml(string id,string format);

    [OperationContract]
    [WebGet(UriTemplate = "GetData/{id}.{format}.json",ResponseFormat=WebMessageFormat.Json)]
    ResponseData GetDataJson(string id,string format);
}

对于SOAP端点,您应该可以调用这两种方法,但是您将需要一个单独的ServiceHost实例来承载合同的实现.

猜你在找的JavaScript相关文章