1

イメージをサービス スタック モデルに含めるための適切な戦略を探しています (可能な場合)。例やヒントを検索しましたが、あまり運がありませんでした。

何かのようなもの

class House
{
    string Address;
    //Image could be anything as long as it can be returned and viewed as a picture in a  
      browser.     
    Image Picture;
}

これをレスポンスの一部として返し、適切に表示できますか?

4

1 に答える 1

2

バイナリ BLOB データを DTO ペイロードに直接含めることは、ほとんど良い考えではありません。

バイナリ形式でバイナリ データを送信する

意味のある唯一のフォーマットは、 ServiceStack のProtoBufのサポートのようなバイナリ フォーマットを使用する場合や、バイナリ データのエンコードに不利にならないメッセージ パックフォーマットを使用する場合です。その場合、画像をbyte[]DTO のプロパティにシリアル化します。これをテキスト形式で行おうとすると、バイナリ データを Base64 のような形式でエンコードする必要があり、ペイロードが不必要に肥大化し、計算オーバーヘッドが追加されます。

代わりに画像またはバイナリ ファイルに URL を埋め込む

推奨されるアプローチは、画像を DTO に直接埋め込むのではなく、画像を参照する URL のみを含めることです。ServiceStackはbyte[]、生Imageのバイナリ データまたはテキスト データを返すための優れたサポートを備えています。StreamIStreamWriterstrings

生のバイナリまたはテキスト応答に対する ServiceStack のサポート

この良い例は、新しい Image Resizer imgur.servicestack.netまたはRestFilesサンプル デモで見ることができます。

wiki のカスタム HTTP レスポンスに関する詳細情報は次のとおりです。

于 2013-04-19T17:43:57.920 に答える