ファイルの multipart/formdata エンコーディングを使用してブラウザから送信されたリクエストを処理するサービスを作成しています。
リクエスト DTO を IRequiresRequestStream インターフェイスで装飾し、RequestStream というプロパティを提供することで、生の入力ストリームにアクセスできることがわかりました。しかし、これを行うと、URL に含まれているものであっても、要求プロパティを入力できないようです。たとえば、リクエストのルートを次のように設定しています
[Route("/document/{Type}/{Id}", "GET,PUT,POST/DELETE")]
public class UploadFileRequest : IReturn<UploadFileResponse>, IRequiresRequestStream
{
public long Id { get; set; }
public string Type { get; set; }
public Stream RequestStream { get; set; }
}
このサービスに PUT 要求を送信すると、RequestStream プロパティが希望どおりに設定されていることがわかりますが、Id プロパティと Type プロパティは null です。 https://groups.google.com/forum/#!msg/servicestack/l9qFvZNbuT0/dwyRQKBhmlMJは、これが発生することを示しているようです。
ルート パラメータを取得し、リクエスト ストリームにアクセスする方法はありますか? それでも、フォーム データの解析を処理する必要があるようですが、うまくいけば、それを簡単に行うためのライブラリを見つけることができます。