我正在使用带有路由表的 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 路径段的变量必须具有类型'字符串'。”。
我知道我可以将 ot 变量更改为类型字符串并一起破解一些验证,但我宁愿正确使用框架。我怎样才能做到这一点?
我担心如果我必须拼凑我自己的解决方案,我将不得不为我的每个 web 服务入口点添加一个验证功能,这将是相当混乱的。