私は戻り値の型との一貫性がない厄介な第三者APIを使用しなければなりません。だから、私はプログラム的なWebリクエストを提出し、ストリームバックを取得し、基礎となるコンテンツはエラーメッセージ(生のテキストか返されるXMLのどちらかになることがあるため、さらに悪いことがあります)か、バイナリファイルを返します。私はどのような形式でも要求されるフォーマットを知る手段がないので、実行時にイントロスペクトする方法が必要です。StreamReaderのコンテンツを特定しますか?
これにどのように取り組むべきですか?ストリームはシーク不可能なので、それ以外のことはできません。私は通常、フロー制御の例外処理を使わないようにしていますが、それを処理する最善の方法かもしれないようです。それが予想されるバイナリファイルタイプで、何が吹くまでならば、頭に浮かぶ
Q:あなたは、少なくとも最初の256バイト開くことができます(または一体を - ちょうど最初の* 4 *バイト)?,そして戻って(あなたは「ヘッダ」で見つけるものに基づいて)*全体*ストリームを処理? – paulsm4
このサードパーティのAPIが公開されている場合は、名前を付けてください。決して使用しません。 – ken2k
ポールはありません。私のできる最善の方法は、最初のkbをバッファに読み込み、ストリームを破棄してバッファを調べ、それが何であるかを調べようとしますバイナリ・コンテンツの場合はリクエストを再発行します。バッファとストリームからのプロセス、その後、あなただけのいくつかをバッファリングし、あなたが望むものを見つけ出す - しかしないことすべては、すべての時間が、私はその優れただけで、それはそのための必要はありません@snappymcsnap – snappymcsnap