Модуль форматирования веб-канала (JSON)
В примере JsonFeeds показано, как сериализовать экземпляр класса в формате нотации объектов JavaScript (JSON) с помощью пользовательского SyndicationFeed и пользовательского SyndicationFeedFormatterDataContractJsonSerializer.
Архитектура примера
В данном примере реализуется класс с именем JsonFeedFormatter
, унаследованный от класса SyndicationFeedFormatter. Класс JsonFeedFormatter
использует класс DataContractJsonSerializer для чтения и записи данных в формате JSON. При внутренней обработке средство форматирования использует пользовательский набор типов контрактов данных с именами JsonSyndicationFeed
и JsonSyndicationItem
для контроля формата данных JSON, создаваемых сериализатором. Эти сведения реализации скрыты от конечного пользователя, что позволяет делать вызовы к стандартным классам SyndicationFeed и SyndicationItem.
Написание веб-каналов JSON
Веб-канал JSON можно написать, используя класс JsonFeedFormatter
(реализованный в этом образце) с классом DataContractJsonSerializer, как показано в следующем образце кода.
//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
Получить объект SyndicationFeed из потока данных в формате JSON можно с помощью класса JsonFeedFormatter
, как показано в следующем примере кода.
//Read in the feed using the DataContractJsonSerializer
DataContractJsonSerializer readSerializer = new DataContractJsonSerializer(typeof(JsonFeedFormatter));
JsonFeedFormatter formatter = readSerializer.ReadObject(stream) as JsonFeedFormatter;
SyndicationFeed feedRead = formatter.Feed;
Настройка, сборка и выполнение образца
Убедитесь, что вы выполнили процедуру однократной установки для примеров Windows Communication Foundation.
Чтобы создать выпуск решения на языке C# или Visual Basic .NET, следуйте инструкциям в разделе Building the Windows Communication Foundation Samples.
Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в разделе "Примеры Windows Communication Foundation".