0

我尝试为我的 Web API 实现 CSV MediaTypeFormatter,如下所述: http ://www.tugberkugurlu.com/archive/creating-custom-csvmediatypeformatter-in-asp-net-web-api-for-comma-separated-values -csv 格式

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

但我无法使用下面的 Web API 控制器让它工作。我使用 Fiddler 调用 Web API:http ://myhostname.com/api/csvexport?format=csv

public dynamic Get()
    {

        var ret = new[] { "CarId", "Make", "Model", "Name" }; 
        return ret;
    } 

对于 CsvFormatter 中的“类型”,我得到:

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

只能在 Type.IsGenericParameter 为 true 的类型上调用方法。

所以我可能没有正确理解 Formatter 的概念并且类型有问题?

4

1 回答 1

2

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

您的方法返回类型是dynamic,不是IEnumerable<T>。您可能可以通过执行以下操作来使其工作:

public IEnumerable<string> Get()
{
    var ret = new[] { "CarId", "Make", "Model", "Name" }; 
    return ret;
}
于 2013-05-23T11:52:06.137 回答