ルーティング テーブルで WCF Restful サービスを使用しています。
列挙型を使用して出力のシリアライズ方法を制御しようとしていますが、問題が発生しています。たとえば、次の列挙型があります。
public enum outputType
{
JSON, XML, XML_XSD, CSV, TXT
}
次に、簡単なテスト コールを使用してみます。
[WebGet(UriTemplate = "{ot}/test")]
public Stream test(outputType ot)
{
using (DataTable dt = new DataTable("test"))
{
//build dummy datatable
dt.Columns.Add("col1");
dt.Rows.Add(dt.NewRow());
dt.Rows[0]["col1"] = "asdf";
//serialize results
//takes a datatable and serializes it into the outputType's file format
return _m.serialize(ot, dt);
}
}
これは正常にコンパイルされますが、「UriTemplate パス セグメントの変数には 'string' 型が必要です。」というエラーが表示されます。
ot 変数を文字列型に変更し、いくつかの検証を一緒にハックできることはわかっていますが、フレームワークを正しく使用することをお勧めします。これどうやってするの?
独自のソリューションをハックする必要があるかどうか心配です。かなり面倒なWebサービスエントリポイントのすべてに検証関数を追加する必要があります。