2016-10-20 2 views
0

Я пытаюсь отобразить Array, тип ответа из XML-RPC, но я не могу понять, как сделать этоXml-RPC.Net Mapping Response с массивом

Документация о XML-RPC.NET библиотеки I Я использую это здесь http://xml-rpc.net/faq/xmlrpcnetfaq-2-5-0.html

пример ответа я получаю (интермедиат всегда 0, и строка содержит случайные числа) здесь:

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

Вот мои попытки в C#, как собирать данные ответа

public struct try1 { 
      public object[] returnstuff; 
     } 

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

Но весь этот бросок же исключение:

CookComputing.XmlRpc.XmlRpcTypeMismatchException' 

Дополнительной информации: ответ содержит значение массива, где структуру ожидаемого

Может ли вы помочь мне понять это, как сделать правильную C# структуру для сбора ответа inormation?

ответ

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; 
    } 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^