Преобразование объекта веб-службы в объект datatable
всем привет
Мне нужно преобразовать каждый элемент результата этого веб-сервиса в dataTable
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://bluxxx.xxxxxxxxs.net/LFA/confirmRcv3.php" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:ControlreciboResponse> <return SOAP-ENC:arrayType="xsd:string[6]" xsi:type="SOAP-ENC:Array"> <item xsi:type="xsd:string"><![CDATA[<item><TipoDocto>OCN</TipoDocto> <Documento>39147</Documento> <Codigo>17429</Codigo> <Cantidad_Recibida>12</Cantidad_Recibida> <Estatus>Disponible</Estatus></item></item> <item xsi:type="xsd:string"><![CDATA[<item><TipoDocto>OCN</TipoDocto> <Documento>39147</Documento> <Codigo>32757</Codigo> <Cantidad_Recibida>13</Cantidad_Recibida> <Estatus>Disponible</Estatus></item></item> <item xsi:type="xsd:string"><![CDATA[<item><TipoDocto>OCN</TipoDocto> <Documento>39147</Documento> <Codigo>48156</Codigo> <Cantidad_Recibida>6</Cantidad_Recibida> <Estatus>Disponible</Estatus></item></item> <item xsi:type="xsd:string"><![CDATA[<item><TipoDocto>OCN</TipoDocto> <Documento>39147</Documento> <Codigo>52314</Codigo> <Cantidad_Recibida>7</Cantidad_Recibida> <Estatus>Disponible</Estatus></item></item> <item xsi:type="xsd:string"><![CDATA[<item><TipoDocto>OCN</TipoDocto> <Documento>39147</Documento> <Codigo>55327</Codigo> <Cantidad_Recibida>10</Cantidad_Recibida> <Estatus>Disponible</Estatus></item></item> <item xsi:type="xsd:string"><![CDATA[<item><TipoDocto>OCN</TipoDocto> <Documento>39147</Documento> <Codigo>57813</Codigo> <Cantidad_Recibida>6</Cantidad_Recibida> <Estatus>Disponible</Estatus></item></item> </return> </ns1:ControlreciboResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Это моя процедура
private void btnLecturaBLur_Click(object sender, EventArgs e) { //get the web service method recibodlxService serviceProxy = new recibodlxService(); object[] sXmlProp = serviceProxy.Controlrecibo(); //create the datatable DataTable dtx; //create the datarow DataRow dr = dtx.NewRow(); foreach (object item in sXmlProp) { //here, HOW Do I do TO add an item to a row } dtx.Rows.Add(dr);
Или я могу использовать dataTable
dtx.ReadXml(reader)??
Что я уже пробовал:
Я пытался сделать что-то вроде этого:
PropertyInfo[] Prop = serviceProxy.Controlrecibo().GetType().GetElementType().GetProperties(); DataTable dt = CreateDataTable(Prop); DataRow dr = dt.NewRow(); foreach (PropertyInfo pi in Prop) { dr[pi.Name] = pi.GetValue(sXmlProp, null); } dt.Rows.Add(dr);
ошибка, которая показывает мне, что " объект не совпадает с целевым типом."