API (Service) pentru a funcționa atât pentru Windows Phone cât și pentru site-ul web

Am creat (în ultima etapă) un site web ASP.NET care necesită comunicații de baze de date. Deci, am creat servicii WCF pentru a vă conecta la baza de date. Dacă există o instrucțiune Select, acel serviciu returnează tabela de date.

Serviciile funcționează bine, iar site-ul funcționează bine

În momentul creării API nu știu că Windows Phone Sdk nu suportă tabelele de date.

Am citit câteva unde Windows Phone SDK nu suportă DataTable, am verificat în Visual Studio și nu există o clasă numită DataTable în spațiul de nume System.Data </​​code>.

Sunt nou la Windows Phone.

Dar acum vrem să creăm un APP API TELEFON, care funcționează și ca Website, așa că dorim să folosim API-ul existent (Serviciul WCF).

există o cale de a realiza această sarcină. cea mai mare parte a metodei de returnare a metodei este DataTable .

nu vrem să creăm două servicii API (înseamnă servicii). Ce ar trebui sa fac?

Cum se creează un serviciu care funcționează atât pentru Windows Phone, cât și pentru site-ul Web.

suntem gata să schimbăm modificarea API și în funcție de site-ul gata de actualizare, de asemenea?

Mulțumiri

0

2 răspunsuri

Just changed the API to return Stream instead of DataTable

 System.IO.StringWriter reader = new System.IO.StringWriter();
 dt.WriteXml(reader, XmlWriteMode.WriteSchema);//dt is datatable
 return reader;

in website small minor changes, reading the stream and assign it to a datatable

    StringReader xmlReader = new StringReader(stream);
    DataTable dt = new DataTable();
    dt.ReadXml(xmlReader);

Actualizați:

Această abordare nu este sugestivă (aceasta a fost prima mea aplicație de serviciu web), vă sugerăm să utilizați răspunsurile JSON/XML (cu returnarea DTOs ) în loc să returnați DataTable .

Următoarele link-uri vă pot ateriza în direcția corectă.

http://www.codeproject.com/Articles/105273/Create-RESTful-WCF-Service-API-Step-By-Step-Guide http://mono.servicestack.net/ServiceStack.Hello/

0
adăugat

Nu sunteți sigur de ce ați folosit datatable. Vrei să spui setul de date?

Ele sunt toate xml sub capace. Încearcă să le analizezi. Încercați ceva de genul:

    var resultNewDataSet = XElement.Parse(xmlContent);

    var result = resultNewDataSet.Descendants("Table")
        .Select(t => new
            {
                aaa = t.Descendants("aaa").First().Value,
                bbb = t.Descendants("bbb").First().Value
            });

    foreach (var res in result)
    {
        System.Diagnostics.Debug.WriteLine("aaa: " + res.aaa + "/bbb: " + res.bbb);
    }
0
adăugat