我尝试为我的Web API实现CSV MediaTypeFormatter,如下所述: http://www.tugberkugurlu.com/archive/creating-custom-csvmediatypeformatter-in-asp-net-web-api-for-comma-separated-values-csv-format
(我不想粘贴那里的所有代码)
但我不能使用下面的Web API Controller来使用它。 我使用Fiddler来调用Web API:http://myhostname.com/api/csvexport?format=csv
public dynamic Get()
{
var ret = new[] { "CarId", "Make", "Model", "Name" };
return ret;
}
对于CsvFormatter中的“type”,我得到一个:
DeclaringMethod ='type.DeclaringMethod'抛出类型'System.InvalidOperationException'的异常
带
只能在Type.IsGenericParameter为true的Type上调用方法。
所以我可能没有得到Formatter的概念,并且类型有问题吗?
答案 0 :(得分:2)
您收到此错误是因为Tugberk的格式化程序仅适用于实现通用IEnumerable<T>
接口的模型。这是有道理的,因为人们在获得一组结果时通常需要CSV格式的数据。如果您只想要一个数据实体,为什么还要以CVS格式?
您的方法返回类型为dynamic
,而不是IEnumerable<T>
。您可以通过执行更类似的操作来使其工作:
public IEnumerable<string> Get()
{
var ret = new[] { "CarId", "Make", "Model", "Name" };
return ret;
}