ServiceStack の JsonServiceClient.Get に IReturn または IReturnVoid 参照を提供する必要がある理由はありますか? 正当な理由があるに違いありません (私はフレームワークにまったく慣れていません) が、オブジェクトを IReturn ラッパーに変換したり、ServiceStack に依存させたりする必要がある理由がわかりません。
これらの投稿を読みましたが、探している説明が見つかりませんでした (回避策のみ):
ありがとう!
ServiceStack の JsonServiceClient.Get に IReturn または IReturnVoid 参照を提供する必要がある理由はありますか? 正当な理由があるに違いありません (私はフレームワークにまったく慣れていません) が、オブジェクトを IReturn ラッパーに変換したり、ServiceStack に依存させたりする必要がある理由がわかりません。
これらの投稿を読みましたが、探している説明が見つかりませんでした (回避策のみ):
ありがとう!
JSON は型指定されていないデータ形式です。文字列と数値、配列とキーと値のペアがあります。それだけです。
JSON over HTTP は型情報を提供しません。
ServiceStack は、HTTP+JSON を実行する他のほとんどの RESTful サービスと同様に、他の言語で記述された他のサービスと同じように機能し、JSON をやり取りします。
サービス メソッドに IReturn を追加しても、サービスが ServiceStack に依存することはありません。他の HTTP クライアントを使用してリクエストを作成し、レスポンスで JSON を取得できます。
さらに、「厳密に型指定された」http クライアント (JsonServiceClient) を使用するオプションが提供されます。これは、サーバー側と同じ .NET タイプにクライアントで自動的にマップされます。そのため、サービス用のネイティブ C#/.NET クライアントを作成する場合は、非常に簡単です。
同時に、あなたや他のクライアントが一般的な「型指定のない」Web サービス クライアントを作成したい場合、それらも期待どおりに機能します。
ajax クライアント、型指定されていない http+json Web サービス クライアント、および ServiceStack クライアントを使用して、次のように考えます。
汎用 Web ブラウザ:
汎用 HTTP クライアント:
ServiceStack の JsonServiceClient:
通常、クライアントとサーバー プロジェクトからの DTO 型情報を *.ServiceModel アセンブリで参照します。これは、両端で使用できます。DTO とサービスの型情報は「そこに」あるため、クライアントは JSON を正しい型に逆シリアル化する方法を認識します。IReturn は、オブジェクトの「マーカー」(メタデータ) です。古い SS API は、同じことを行うために異なるインターフェイスを使用していましたが、より冗長で柔軟性が低かった (REST と SOAP のリターンが異なるようです)。
また、DTO は IReturn を実装する必要がないことに注意してください。したがって、DTO は SS に依存する必要はありません。IReturn は、「操作」または通信 DTO (パラメーターを渡す DTO) でのみ使用することを好みます。IReturn に依存せずに、データベース テーブル (つまり、OrmLite) にマップする DTO を保持するのが好きです。
https://github.com/ServiceStack/ServiceStack/wiki/C%23-client