Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 23922|Odpowiedź: 0

[Źródło] .net/c# Wytyczne dotyczące interfejsu komunikatów na publicznej platformie WeChat Serializacja i deserializacja

[Skopiuj link]
Opublikowano 23.08.2016 17:07:02 | | |
Ostatnio brat Shuang chciał spróbować trybu deweloperskiego publicznego konta WeChat i złożył wniosek o założenie konta na publicznej platformie WeChat. Potem poszedłem zobaczyć przewodnik interfejsu otwartej platformy, dodał link do grupy, WeChat ostatnio się przegrzał, ja też kliknąłem z ciekawością.

Kliknij na przewodnik interfejsu komunikatów, zobaczymy, że interfejs komunikatów platformy publicznej wykorzystuje XML do interakcji z danymi. Dla wygody manipulacji danymi zwykle serializujemy i deserializujemy XML. Serializacja to proces przekształcania stanu obiektu w format, który można utrzymać lub przenieść. Przeciwieństwem serializacji jest deserializacja, która przekształca strumienie w obiekty. Te dwa procesy łączą się, aby ułatwić przechowywanie i przesyłanie danych.

Porozmawiajmy najpierw o serializacji, weźmy na przykład format XML odpowiadający na wiadomości graficzne, ponieważ ten format zasadniczo obejmuje wszystkie powyższe komunikaty: push i message reply.


Gdy <xml><Articles>otrzymujemy odpowiedź na dane z platformy publicznej POST, aby zwrócić wyjście, używamy serializacji XML, czyli do konwersji obiektu danych odpowiedzi na format XML udostępniany przez platformę publiczną, co jest wygodne do transmisji danych. Serializacja Tutaj napisałem prosty przykładowy kod w C#. Aby uzyskać serializowany ciąg znaków, Nie ma bezpośredniego wyjścia, oczywiście w projekcie możesz bezpośrednio użyć Response.Output.


Wspomniano tutaj, że nazwa elementu korzeniowego XML generowanego przez metodę Serialize klasy XmlSerializer domyślnie przyjmuje nazwę klasy serializacji. Dlaczego czuję się tak zagmatany, gdy czytam to zdanie? I nie chcę używać bezsensownego słowa jak xml jako nazwy klasy, musimy dodać tag właściwości do klasy serializacji [XmlRoot(ElementName = "xml")], aby określić, że wygenerowany element XML nazywa się xml.
Jeśli nie dodasz tego tagu, jeśli nazwa klasy serializacyjnej nie odpowiada nazwie elementu korzeniowego XML, zawsze pojawi się błąd formatu dokumentu.

Po uzyskaniu elementu korzeniowego musimy rozwiązać problem węzła kolekcji Articles, w tym momencie musimy stworzyć nową listę typów silnych, a zmienna nazywa się Articles public property.


XmlArrayItemAttribute to typ pochodny, który określa, że XmlSerializer może być umieszczony w serializowanej tablicy. Po stworzeniu klasy, debugowaniu i jej obejrzeniu praktycznie nie ma większego problemu.

Porozmawiajmy o deserializacji. Gdy zwykły użytkownik WeChat wysyła wiadomość na konto publiczne, serwer WeChat OPUBLIKUJE wiadomość na wypełnionym adresie URL. Obecnie musimy zdeserializować odebrane dane do obiektów potrzebnych dla łatwej obsługi i przechowywania. Zazwyczaj używamy Request.Form["param"], aby uzyskać dane Posta, a wielu deweloperów zauważa, że dane POST nie mają żadnych parametrów podczas przeglądania dokumentacji interfejsu, są zdezorientowani i nie wiedzą, jak je uzyskać. Tutaj używamy Request.InputStream, aby uzyskać treść przychodzącej jednostki HTTP. Więcej informacji można znaleźć w tym artykule: http://blog.sina.com.cn/s/blog_9fa44b550101ee3r.html

Deserializacja Tutaj napisałem prosty przykładowy kod w C#.


Tutaj, ponieważ jest to ciąg bezpośrednio kopiujący przykładowe dane xml odpowiadające na wiadomość graficzną, przeciążenie Deserialize (TextReader textReader) jest oczywiście wykorzystywane przez przeciążenie Deserialize (Stream stream) w projekcie.

W przypadku pytań dotyczących serializacji XML zobacz ten artykuł na MSDN o serializacji XML i SOAP

Umieściłem odpowiedni plik kodu instancji na githubie pod nazwą XmlSerializerExample

Pisz w pośpiechu i po prostu zostaw znak. Nie jadłem wystarczająco dużo w nocy i teraz robi mi się niedobrze. Muszę szybko iść spać.
Jeśli są jakieś błędy, proszę je poprawić.

Oryginalny link:

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





Poprzedni:deserializacja xml W dokumencie XML wystąpił błąd (1, 2).
Następny:[kod źródłowy].net/c# WeChat inteligentny czat skanowanie informacji lokalizacyjnych GIS w celu uzyskania funkcji obrazu
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com