Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 23922|Válasz: 0

[Forrás] .net/c# WeChat Nyilvános Platform Üzenetfelület Irányelvek Serializáció és deserializáció

[Linket másol]
Közzétéve 2016. 08. 23. 17:07:02 | | |
Nemrég Shuang testvér ki akarta próbálni a WeChat nyilvános fiók fejlesztői módját, és jelentkezett egy fiókra a WeChat nyilvános platformján. Aztán megnéztem a nyílt platform felületi útmutatóját, betett egy linket a csoportba, a WeChat mostanában túlmelegedett, kíváncsian rákattintottam is.

Kattints az üzenetinterfész útmutatójára, láthatjuk, hogy a nyilvános platform üzenetfelülete XML-t használ az adatinterakcióhoz. Az adatkezelés kényelme érdekében általában az XML-t soriálissá és deserializáljuk. A serializáció az a folyamat, amely során egy objektum állapotát olyan formátummá alakítják, amelyet fenntartható vagy áthelyezhető. A serializáció ellentéte a deserializáció, amely az áramlatokat objektumokká alakítja. Ez a két folyamat együtt megkönnyíti az adatok tárolását és átvitelét.

Először a serializációról beszéljünk, vegyük például a grafikus üzenetekre válaszolás XML formátumát, mert ez a formátum lényegében magában foglalja az összes fenti üzenet push-t és üzenetválaszt.


Amikor <xml><Articles>megkapjuk az adatválaszt a nyilvános platformról, a POST-tól, hogy visszaadjuk a kimenetet, XML serializációt használunk, vagyis a válaszadat objektumot a nyilvános platform által biztosított XML adatformátumba alakítjuk, ami kényelmes az adatátvitelhez. Serializáció Itt írtam egy egyszerű példakódot C#-ban. A serializált string megszerzéséhez, Nincs közvetlen kimenet, természetesen a projektedben közvetlenül is használhatod a Response.Output-ot.


Itt említik, hogy az XmlSerializer osztály Serialize módszerével generált XML gyökérelem neve alapértelmezés szerint a serializációs osztály neve. Miért érzem magam ennyire eltorzultnak, amikor ezt a mondatot olvasom? És nem akarok értelmetlen szót, mint az xml osztálynévként használni, szükségünk van egy tulajdonságcímkét hozzáadni a serializációs osztályhoz [XmlRoot(ElementName = "xml")], hogy megadjuk, a generált XML elem neve xml.
Ha nem adod hozzá ezt a címkét, és ha a sorozatolási osztály neve nem egyezik az XML gyökérelem nevével, akkor mindig dokumentumformátumi hibát kapsz.

A gyökérelem megszerzése után meg kell oldanunk a Cikkek gyűjteménycsomópontjának problémáját, ekkor új erős típusok listát kell létrehoznunk, és a változót Cikkek köztulajdonnak hívják.


Az XmlArrayItemAttribute egy levezetett típus, amely előírja, hogy az XmlSerializer sorozatos tömbbe is helyezhető. Miután létrehoztam az osztályt, hibáztatta és megnézte, gyakorlatilag nincs nagy probléma.

Beszéljünk a deserializációról. Amikor egy átlagos WeChat felhasználó üzenetet küld a nyilvános fióknak, a WeChat szerver KÖZZÉTESZI az üzenetet a kitöltött URL-re. Jelenleg a befogadott adatokat deserializálni kell azokba az objektumokba, amelyekre szükségünk van az egyszerű üzemeltetés és tárolás érdekében. Általában az Request.Form["param"] segítségével megszerezzük a Post adatait, és sok fejlesztő azt tapasztalja, hogy a POST adatainak nincsenek paraméterei az interfész dokumentációjában, összezavarodnak, és nem tudják, hogyan szerezzék meg az adatokat. Itt az Request.InputStream segítségével megszerezzük a bejövő HTTP entitás testének tartalmát. További információért kérjük, tekintse meg ezt a cikket: http://blog.sina.com.cn/s/blog_9fa44b550101ee3r.html

Deserializáció Itt írtam egy egyszerű példakódot C#-ban.


Itt, mivel ez egy string, amely közvetlenül másolja a grafikus üzenetre válaszoló xml mintaadatokat, a Deserialize (TextReader textReader) túlterhelését használják, természetesen közvetlenül is használhatod a Deserialize (Stream stream) túlterhelését a projektben.

Az XML serializációval kapcsolatos kérdésekért lásd ezt az MSDN cikket az XML-ről és a SOAP serializációról

A releváns instance kódfájlt a githubra tettem az XmlSerializerExample címen

Írj sietve, és egyszerűen hagyj jelet. Este nem ettem eleget, most pedig hányingerem van. Gyorsan le kell feküdnöm.
Ha van hibá, kérlek, javítsd ki.

Eredeti link:

http://imr3.com/tech/weixin-message-api-serialize





Előző:xml deserializáció Hiba van az XML dokumentumban (1, 2).
Következő:[forráskód].net/c# WeChat intelligens csevegés GIS helyinformációs szkennelése képfunkció eléréséhez
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com