ASP.NET Web API的CSV媒体类型格式化程序

ASP.NET Web API的CSV媒体类型格式化程序,csv,asp.net-mvc-4,asp.net-web-api,Csv,Asp.net Mvc 4,Asp.net Web Api,我尝试为我的Web API实现CSV MediaTypeFormatter,如下所述: (我不想从那里粘贴所有代码) 但我无法使用下面的Web API控制器使其正常工作。 我使用Fiddler通过以下方式调用Web API: 对于CsvFormatter中的“type”,我得到一个: DeclaringMethod='type.DeclaringMethod'引发了类型为'System.InvalidOperationException'的异常 与 方法只能对Type.IsGenericPar

我尝试为我的Web API实现CSV MediaTypeFormatter,如下所述:

(我不想从那里粘贴所有代码)

但我无法使用下面的Web API控制器使其正常工作。 我使用Fiddler通过以下方式调用Web API:

对于CsvFormatter中的“type”,我得到一个:

DeclaringMethod='type.DeclaringMethod'引发了类型为'System.InvalidOperationException'的异常

方法只能对Type.IsGenericParameter为true的类型调用


因此,我可能没有正确理解格式化程序的概念,并且对类型有问题?

您会遇到此错误,因为Tugberk的格式化程序仅适用于实现泛型
IEnumerable
接口的模型。这是有道理的,因为人们在获得一组结果时通常需要CSV格式的数据。如果只需要一个数据实体,为什么需要CVS格式

您的方法返回类型是
dynamic
,而不是
IEnumerable
。您可以通过执行以下操作使其正常工作:

public IEnumerable<string> Get()
{
    var ret = new[] { "CarId", "Make", "Model", "Name" }; 
    return ret;
}
public IEnumerable Get()
{
var ret=new[]{“CarId”、“Make”、“Model”、“Name”};
返回ret;
}
public IEnumerable<string> Get()
{
    var ret = new[] { "CarId", "Make", "Model", "Name" }; 
    return ret;
}