【问题标题】:Return JSON as a result in Wcf Services在 Wcf 服务中返回 JSON 作为结果
【发布时间】:2016-11-18 17:06:47
【问题描述】:

我正在创建 wcf 服务,以查询 Oracle 数据库并以 JSON 格式返回结果。如何将 Oracle 查询的结果转换为 JSON 消息

 public class Service1 : IService1
 {
  public HttpResponseMessage GetData(string ROOM)
{
     List<OracleParameter> prms = new List<OracleParameter>();
    prms.Add(new OracleParameter("ROOM", OracleDbType.Varchar2, ROOM, ParameterDirection.Input));
    string connStr = ConfigurationManager.ConnectionStrings["TGSDataBaseConnection"].ConnectionString;            using (OracleConnection dbconn = new OracleConnection(connStr))
    {
        DataSet userDataset = new DataSet();
        var strQuery = "SELECT * from LIMS_SAMPLE_RESULTS_VW where ROOM = :ROOM";
        var returnObject = new { data = new OracleDataTableJsonResponse(connStr, strQuery, prms.ToArray()) };
        var response = Request.CreateResponse(HttpStatusCode.OK, returnObject, MediaTypeHeaderValue.Parse("application/json"));
        ContentDispositionHeaderValue contentDisposition = null;
        if (ContentDispositionHeaderValue.TryParse("inline; filename=TGSData.json", out contentDisposition))
        {
            response.Content.Headers.ContentDisposition = contentDisposition;
        }
        return response;
    }

它会抛出错误,例如行中的当前上下文中不存在名称“请求”

var response = Request.CreateResponse(HttpStatusCode.OK, returnObject, MediaTypeHeaderValue.Parse("application/json"));

我添加了

 using System.Net.Http;
 using System.Net.Http.Formatting;
 using System.Net.Http.Headers;

并添加了他们的程序集作为参考。但仍然显示相同的错误。

【问题讨论】:

  • 什么是响应?
  • @viveknuna 响应是我们从 Oracle 数据库中得到的

标签: c# json oracle wcf


【解决方案1】:

尝试将Request更改为HttpContext.Current.Request

【讨论】:

  • Instance argument: cannot convert from 'System.Web.HttpRequest' to 'System.Net.Http.HttpRequestMessage' Argument 4: cannot convert from 'System.Net.Http.Headers.MediaTypeHeaderValue' to 'System.Web.Http.HttpConfiguration' 'System.Web.HttpRequest' does not contain a definition for 'CreateResponse' and the best extension method overload 'System.Net.Http.HttpRequestMessageExtensions.CreateResponse&lt;T&gt;(System.Net.Http.HttpRequestMessage, System.Net.HttpStatusCode, T, System.Web.Http.HttpConfiguration)' has some invalid arguments
  • 这些是错误信息。还添加了我在问题中添加的屏幕截图
  • 阅读这个:stackoverflow.com/a/22066963/3272054 所以你应该尝试 HttpRequestMessageExtensions 而不是 HttpRequest。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-09
相关资源
最近更新 更多