Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A JsonFeeds-minta bemutatja, hogyan lehet egy SyndicationFeed osztály példányát a JavaScript Object Notation (JSON) formátumban szerializálni egyedi SyndicationFeedFormatter és a DataContractJsonSerializer alkalmazásával.
A minta architektúrája
A minta egy olyan JsonFeedFormatter osztályt implementál, amely a SyndicationFeedFormatter-től öröklődik. Az JsonFeedFormatter osztály az adatok JSON formátumban történő olvasására és írására támaszkodik DataContractJsonSerializer . A formázó belsőleg a JsonSyndicationFeed és JsonSyndicationItem nevű adatszerződések egyéni készletét használja, hogy szabályozza a szerializáló által előállított JSON-adatok formátumát. Ezek a megvalósítási részletek el vannak rejtve a végfelhasználó elől, így a hívások a standard SyndicationFeed és SyndicationItem az osztályok ellen indíthatók.
JSON-hírcsatornák írása
A JSON-hírcsatorna írása a következő mintakódban mutatott módon a JsonFeedFormatter (amely ebben a mintában van megvalósítva) és a DataContractJsonSerializer eszközzel végezhető el.
//Basic feed with sample data
SyndicationFeed feed = new SyndicationFeed("Custom JSON feed", "A Syndication extensibility sample", null);
feed.LastUpdatedTime = DateTime.Now;
feed.Items = from s in new string[] { "hello", "world" }
select new SyndicationItem()
{
Summary = SyndicationContent.CreatePlaintextContent(s)
};
//Write the feed out to a MemoryStream in JSON format
DataContractJsonSerializer writeSerializer = new DataContractJsonSerializer(typeof(JsonFeedFormatter));
writeSerializer.WriteObject(stream, new JsonFeedFormatter(feed));
JSON-hírcsatorna olvasása
A JSON-formátumú adatfolyamokból a SyndicationFeed kinyerése az alábbi kód szerint az JsonFeedFormatter segítségével végezhető el.
//Read in the feed using the DataContractJsonSerializer
DataContractJsonSerializer readSerializer = new DataContractJsonSerializer(typeof(JsonFeedFormatter));
JsonFeedFormatter formatter = readSerializer.ReadObject(stream) as JsonFeedFormatter;
SyndicationFeed feedRead = formatter.Feed;
A példa beállítása, elkészítése és futtatása
Győződjön meg arról, hogy elvégezte a Windows Communication Foundation-minták One-Time beállítási eljárását.
A megoldás C# vagy Visual Basic .NET kiadásának létrehozásához kövesse Windows Communication Foundation-mintákcímű témakör utasításait.
Ha a mintát egy vagy több gép közötti konfigurációban szeretné futtatni, kövesse A Windows Communication Foundation-minták futtatásacímű témakör utasításait.