Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 23922|Odpověď: 0

[Zdroj] .net/c# WeChat Pokyny pro veřejné rozhraní zpráv Serializace a deserializace

[Kopírovat odkaz]
Zveřejněno 23.08.2016 17:07:02 | | |
Nedávno chtěl bratr Shuang vyzkoušet vývojářský režim veřejného účtu na WeChatu a požádal o účet na veřejné platformě WeChat. Pak jsem se podíval na rozhraní otevřené platformy, dal odkaz do skupiny, WeChat byl v poslední době přehřátý, zvědavě jsem se tam také klikl.

Kliknutím na průvodce rozhraním zpráv vidíme, že rozhraní veřejných zpráv používá XML pro interakci s daty. Pro pohodlí manipulace s daty obvykle serializujeme a deserializujeme XML. Serializace je proces převodu stavu objektu do formátu, který lze udržovat nebo přenášet. Opakem serializace je deserializace, která převádí proudy na objekty. Tyto dva procesy se kombinují, aby bylo snadné ukládat a přenášet data.

Nejprve si povězme o serializaci, vezměme si například XML formát odpovídání na grafické zprávy, protože tento formát v podstatě zahrnuje všechny výše uvedené zprávy push a odpověď na zprávy.


Když <xml><Articles>obdržíme datovou odpověď z veřejné platformy POST, abychom vrátili výstup, používáme XML serializaci, tedy k převodu datového objektu odpovědi do XML datového formátu poskytovaného veřejnou platformou, což je pohodlné pro přenos dat. Serializace Zde jsem napsal jednoduchý ukázkový kód v C#. Abych získal serializovaný řetězec, Není tam žádný přímý výstup, samozřejmě ve vašem projektu můžete přímo použít Response.Output.


Zde je zmíněno, že název XML kořenového prvku generovaného metodou Serialize třídy XmlSerializer je výchozí na název třídy serializace. Proč se při čtení této věty cítím tak zmateně? A nechci používat bezvýznamné slovo jako xml jako název třídy, musíme přidat vlastnostní tag do serializační třídy [XmlRoot(ElementName = "xml")], abychom specifikovali, že generovaný XML prvek se jmenuje xml.
Pokud tento tag nepřidáte, pokud název vaší serializační třídy neodpovídá názvu kořenového prvku XML, vždy dostanete chybu formátu dokumentu.

Po získání kořenového prvku musíme vyřešit problém sběrného uzlu Articles, v tuto chvíli musíme vytvořit nový seznam silných typů a proměnná se nazývá veřejná vlastnost Articles (veřejná vlastnost).


XmlArrayItemAttribute je odvozený typ, který specifikuje, že XmlSerializer lze umístit do serializovaného pole. Po vytvoření třídy, ladění a prohlédnutí se na ni v podstatě není žádný velký problém.

Pojďme si povídat o deserializaci. Když běžný uživatel WeChatu odešle zprávu na veřejný účet, server WeChat ji ZVEŘEJNÍ na vyplněnou URL. V tuto chvíli potřebujeme deserializovat přijatá data do objektů, které potřebujeme pro snadný provoz a ukládání. Obvykle používáme Request.Form["param"] k získání dat Postu a mnoho vývojářů zjistí, že data POST nemají žádné parametry při prohlížení dokumentace rozhraní, jsou zmatení a nevědí, jak data získat. Zde používáme Request.InputStream k získání obsahu příchozího HTTP těla entity. Pro více informací se prosím podívejte na tento článek: http://blog.sina.com.cn/s/blog_9fa44b550101ee3r.html

Deserializace Zde jsem napsal jednoduchý ukázkový kód v C#.


Zde, protože jde o řetězec, který přímo kopíruje xml ukázková data odpovídající grafické zprávě, se používá přetížení Deserialize (TextReader textReader), samozřejmě můžete přímo využít přetížení Deserialize (Stream stream) v projektu.

Pro otázky ohledně serializace XML viz tento článek na MSDN o serializaci XML a SOAP

Relevantní soubor instance jsem dal na github na XmlSerializerExample

Pište ve spěchu a jednoduše udělejte značku. Večer jsem nejedl dost a teď se mi dělá špatně. Musím rychle spát.
Pokud jsou tam nějaké chyby, prosím opravte je.

Původní odkaz:

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





Předchozí:xml deserializace V XML dokumentu (1, 2) je chyba.
Další:[zdrojový kód].net/c# WeChat inteligentní chat GIS skenování polohy pro získání funkce obrazu
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com