Как десериализовать объект из канала OData Atom?

Я пытаюсь разобрать ответ от службы OData REST. Когда ответ в формате JSON, его легко использоватьReadAsJsonDataContract метод из стартового комплекта WCF REST. Однако вещи кажутся более сложными в случае, если ответом является канал Atom. Это пример:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<entry xml:base="http://localhost:64172/BookshopService.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
  <id>http://localhost:64172/BookshopService.svc/Books(89)</id>
  <title type="text"></title>
  <updated>2010-11-08T09:44:21Z</updated>
  <author>
    <name />
  </author>
  <link rel="edit" title="Books" href="Books(89)" />
  <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/OrderLines" type="application/atom+xml;type=feed" title="OrderLines" href="Books(89)/OrderLines" />
  <category term="BookshopModel.Books" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
  <content type="application/xml">
    <m:properties>
      <d:Id m:type="Edm.Int32">89</d:Id>
      <d:Author>Martin Fowler</d:Author>
      <d:Title>Analysis Patterns</d:Title>
      <d:Price m:type="Edm.Decimal">50.20</d:Price>
    </m:properties>
  </content>
</entry>

Таким образом, фактический объект сериализуется в элементе «content / m: properties». И, конечно, это не может быть обработаноDataContractSerializer что ожидает другую схему.

Кто-нибудь знает, какую методику можно использовать для десериализации содержимого элемента OData atom m: properties?

Ответы на вопрос(1)

Ваш ответ на вопрос