1

私はかなり長い間、この質問に対する答えを得ようとしてきました。WCF Dataservice はスレッド セーフではなく、再作成する必要がある場合が多いため、データストアにレコードをクエリしたら、その応答から ETAG を抽出して、データ コンテキストを再構築するときに使用できるようにするにはどうすればよいですか?

4

1 に答える 1

1

これは、クライアントで使用している言語/ライブラリと、ネットワークで使用している形式 (ATOM と JSON) によって異なります。ETag はペイロードに格納され、単一のエンティティ ペイロードの場合は HTTP ヘッダーにも格納されます。一部のライブラリは、それを抽出して直接アクセスできるようにします (ODataLib や WCF Data Services クライアントなど)。ペイロードを自分で解析している場合は、自分で抽出する必要があります。

WCF Data Services クライアントでは、ETag に からアクセスできますDataServiceContext.GetEntityDescriptor(entity).ETag

ODataLib では、ETag は を通じて公開されますODataEntry.ETag

ATOM ETag のペイロードでは、ここで説明するようm:etagに、atom:entry 要素(m はメタデータの名前空間)の属性として格納されます。

Verbose JSON ETag のペイロードでは、エントリ メタデータの一部として格納されます。したがって、エントリ オブジェクトにはプロパティ __metadata があり、その値は etag というプロパティを持つオブジェクトです。4.1.1 章を参照

于 2012-10-09T01:20:33.940 に答える