现在的位置: 首页 > 综合 > 正文

WS返回DataTable,DataSet,DataRow的问题

2013年10月12日 ⁄ 综合 ⁄ 共 1514字 ⁄ 字号 评论关闭

 WebService服务里返回了一个DataSet,数据没问题,但运行时出现“System.InvalidOperationException,序列化类型为“System.Reflection.Module”的对象时检测到循环引用。”问题。东查西查的,原来在WebService中使用DataTable做返回值时,需要在Web.Config文件中添加序列化转换器。DataSet、DataTable、DataRow均有转换器,方法如下:

 

< system.web.extensions>
  < scripting>
  < webServices>
  < jsonSerialization>
  < converters>
  < add name="DataSetConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataSetConverter, Microsoft.Web.Preview"/>
  < add name="DataRowConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataRowConverter, Microsoft.Web.Preview"/>
  < add name="DataTableConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataTableConverter, Microsoft.Web.Preview"/>
  < /converters>
  < /jsonSerialization>
  < /webServices>
  < /scripting>
  < /system.web.extensions>

 < system.web.extensions>
  < scripting>
  < webServices>
  < jsonSerialization>
  < converters>
  < add name="DataSetConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataSetConverter, Microsoft.Web.Preview"/>
  < add name="DataRowConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataRowConverter, Microsoft.Web.Preview"/>
  < add name="DataTableConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataTableConverter, Microsoft.Web.Preview"/>
  < /converters>
  < /jsonSerialization>
  < /webServices>
  < /scripting>
  < /system.web.extensions>

 

    二、类声明加入标签[System.Web.Script.Services.ScriptService]

 

    三、若要引用Session中的数据,加入[WebMethod(EnableSession = true)]

 

    四、添加对Microsoft.Web.Preview.dll的引用

抱歉!评论已关闭.