WCF到WebInvoke属性的MVC Web API(BodyStyle = WrappedRequest)

时间:2014-06-26 18:44:35

标签: .net wcf asp.net-web-api

我尝试将WCF Web服务重新创建为在Web方法上具有以下属性的MVC Web API:

[WebInvoke(Method = "*", BodyStyle = WebMessageBodyStyle.WrappedRequest)]

VB:

<WebInvoke(Method = "*", BodyStyle = WebMessageBodyStyle.WrappedRequest)> _

创建包装请求的MVC Web API是什么方式?

1 个答案:

答案 0 :(得分:0)

我遇到同样的问题但找不到任何解决方案,但是,以下是我的解决方法。

将WrappedResponse创建为名称/值结构。

public class WrappedResponse<T>
    {
        public List<T> SampleCollection { get; set; }
        public static WrappedResponse<T> GetResult(List<T> list)
        {
            var result = new WrappedResponse<T>();
            result.SampleCollection = list;
            return result;
        }       
    }

返回WrappedResponse实例。

[Route("Products")]
        public IHttpActionResult Get()
        {
            Configuration.Formatters.Clear();
            Configuration.Formatters.Add(new JsonMediaTypeFormatter());

            using (var context = new AdventureWorks2012Entities())
            {
                List<Product> productsList = context.Products.Take(10).ToList();
                var result = WrappedResponse<Product>.GetResult(productsList);
                return Ok(result);
            }
        }