0

WCF データ サービスを作成し、すべてが機能するようになりましたが、xml が必要な方法でフォーマットされておらず、余分なものをすべて削除する方法がわかりません。私が持っているものは次のとおりです。

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xml:base="http://172.1.2.2/Database/DatabaseTables.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://172.1.2.2/Database/DatabaseTables.svc/Device('999')</id>
<title type="text"></title>
<updated>2013-05-14T18:17:10Z</updated>
<author>
  <name />
</author>
<link rel="edit" title="Device" href="Device('999')" />
<category term="Model.Device" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<content type="application/xml">
  <m:properties>
    <d:Device_Code>999</d:Device_Code>
    <d:Short_name>TC2</d:Short_name>
  </m:properties>
 </content>
</entry>

私が欲しいのは:

<Device>
  <Device_Code>999</Device_Code>
  <Short_name>TC2</Short_name>
</Device>

name 属性をデータ コントラクトに既に追加しましたが、何も変更されませんでした。

4

1 に答える 1

0

WCF Data Services は、RESTful サービスの共通の特性に基づいて構築された統一プロトコルであるODataを生成します。OData を使用すると、サービスを利用するユーザーは、ペイロード形式、URI 規則、および HTTP メソッドのセマンティクスを理解するために、カスタム API のサーバー固有の詳細を学習する必要がなくなります。ユーザーが OData を既に理解しており、サービスが OData を生成する場合、新しいことを学習したり、カスタム コードを大量に記述したりする必要はありません。

返送しようとしている xml が、OData ペイロード形式のいずれかでフォーマットされていません。それ自体は問題ではありませんが、WCF Data Services クライアント (Visual Studio では "サービス参照の追加")、PowerPivot、またはその他のツールやクライアント ライブラリを使用できないことに注意してください。 OData を理解する。さらに、OData xml 形式は AtomPub の上に構築されているため、ほとんどのブラウザー (およびその他の Atom リーダー) はインテリジェントな方法でデータを表示できます。

独自の形式を使用してカスタム REST API を作成しようとしている場合は、より適した他のライブラリやフレームワークが存在する可能性があります。ここでは、 ASP.NET Web APIを選択することをお勧めします。これについてはよくわかりませんが、Web API を使用すると、標準の OData URI 規則 ($filter、$select など) を使用してカスタム フォーマットを作成することも可能になると思います。

要約すると、OData は、共通の標準に固執し、十分にテストされた既存のライブラリに依存してサービスを利用できるようにしたい場合に最適です。WCF Data Services は、OData の非常に堅牢で安定した実装です。しかし、OData を使用していない (またはその一部しか使用していない) 場合、WCF Data Services はおそらく探しているものではないでしょう。

于 2013-05-14T20:21:10.083 に答える