Megosztás:


Hírcsatorna-formázó (JSON)

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

  1. 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.

  2. 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.

  3. 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.