2015-07-02 27 views
0

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

感谢 艾伦

以前的工作守则(和仍然使用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; 

}

+0

返回: [{“zone_id”:1,“zone_org”:“RAI”,“zone_name”:“AL Shipping”,“zone_type”:1,“read_time “:3,”read_cycles“:10,”sensor_bounce_time“:4,”sensor_method“:”GPIOEDGE“,”filter“:”3014DBA424“,”reader_id“:1,”reader_name“:”AL Shipping1“,”reader_tcp_address“ :“TCP://10.115.116.52:2189”},{“zone_id”:1,“zone_org”:“RAI”,“zone_name”:“AL Shipping”,“zone_type”:1,“read_time” “read_cycles”:10,“sensor_bounce_time”:4,“sensor_method”:“GPIOEDGE”,“filter”:“3014DBA424”,“reader_id”:2,“reader_name”:“AL Shipping2”,“reader_tcp_address” //10.115.116.53:2189“}]

回答

0

我也有过代码,在旧版本的工作问题但不在最新版本中。我刚刚回滚,在Nuget上,你仍然可以安装旧版本,这很好!

相关问题