NewtonSoft JSON.NEt 7.0.1

时间:2015-07-02 20:28:52

标签: serialization datatable json.net type-conversion

以前我一直在使用JsonConvert.Serialize(oMyTable)序列化DataTables,版本6.0.8工作正常,我今天更新到7.0.1,如果我通过网站上的调用运行我的webservice方法,返回值与以前一样。但是,如果我从应用程序调用完全相同的Web服务实例,它就不会调用DataTableConverter,而是获得包含DataTable对象的所有属性的序列化结果。它似乎没有运行DataTableConverter,其他任何人有类似的问题?是的,DataTable有行,它也有一个名称。我注意到7.0.1版本中提到的DataTableConverter有一些变化,做了一些改变会导致转换器不像之前那样被调用?

由于 艾伦

之前有效的代码(并且仍然使用6.0.8):

public string GetZoneConfiguration(int iZoneId)
{
  string sOutput = string.Empty;

  if (string.IsNullOrEmpty(this.RFIDConnection))
  {
    oLog.Error("{0}, no RFIDConnection value.", System.Reflection.MethodBase.GetCurrentMethod().Name);
    return sOutput;
  }

  DBUtility oDatabase = new DBUtility(this.RFIDConnection);

  string sSQL = "select zone_id, zone_org, zone_name, zone_type, read_time, read_cycles, sensor_bounce_time, sensor_method, filter, reader_id, reader_name, reader_tcp_address from vw_rfid_zone_readers";
  sSQL += " where zone_id = " + iZoneId.ToString() + " and reader_active = 1";
  DataTable oTable = new DataTable("ZoneConfiguration");
  if (!oDatabase.ReadData(sSQL, ref oTable))
  {
     oLog.Error("{0}, ReadData returned {1}.", System.Reflection.MethodBase.GetCurrentMethod().Name, oDatabase.SQLError);
  }
  sOutput = JsonConvert.SerializeObject(oTable);
  return sOutput;

}

1 个答案:

答案 0 :(得分:0)

我也遇到了旧版本但在最新版本中没有的代码问题。我刚回滚,在Nuget上你仍然可以安装旧版本,这很不错!