2016-10-20 3 views
0

Ich versuche Array Antworttyp aus einem XML-RPC auf der Karte, aber ich kann nicht verstehen, wie es über XML-RPC.NET Bibliothek IXml-RPC.Net Response-Mapping mit Array

Die Dokumentation zu tun ist mit hier http://xml-rpc.net/faq/xmlrpcnetfaq-2-5-0.html

Das Beispiel der Antwort erhalte ich (int ist immer 0, und Zeichenfolge enthält Zufallszahl) hier:

<methodResponse> 
    <params> 
    <param> 
     <value> 
     <array> 
      <data> 
      <value> 
       <int>0</int> 
      </value> 
      <value> 
       <string>9869117656.9552</string> 
      </value> 
      </data> 
     </array> 
     </value> 
    </param> 
    </params> 
</methodResponse> 

hier meine Versuche in C# sind, wie die Antwortdaten zu sammeln

public struct try1 { 
      public object[] returnstuff; 
     } 

public struct try2 
     { 
      public int returncode; 
      public string token; 
     } 

Aber all diese gleiche Wurf Ausnahme:

CookComputing.XmlRpc.XmlRpcTypeMismatchException' 

Zusätzliche Informationen: Antwort enthält Wert Array, in dem struct

erwartet Können Sie mir helfen, es herauszufinden, wie richtige C# Struktur zu machen Antwort zu sammeln Information?

Antwort

0

Try xml linq

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml; 
using System.Xml.Linq; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     const string FILENAME = @"c:\temp\test.xml"; 
     static void Main(string[] args) 
     { 
      XDocument doc = XDocument.Load(FILENAME); 

      Data data = new Data(); 
      data.values = doc.Descendants("data").Select(x => new Values() { 
       returncode = (int?)x.Descendants("int").FirstOrDefault(), 
       token = (string)x.Descendants("string").FirstOrDefault() 
      }).ToArray(); 

     } 
    } 
    public class Data 
    { 
     public Values[] values; 
    } 

    public class Values 
    { 
     public int? returncode; 
     public string token; 
    } 

}