2013-03-26 70 views
0

我試圖執行一個CSV MediaTypeFormatter我們的Web API如下所述: http://www.tugberkugurlu.com/archive/creating-custom-csvmediatypeformatter-in-asp-net-web-api-for-comma-separated-values-csv-formatCSV媒體類型格式化了的ASP.NET Web API

(我不希望在所有的代碼粘貼從那裏)

但我不明白它在使用下面的Web API控制器工作。 我用菲德勒調用與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是真實的。

所以我可能沒有得到格式化的權利的概念,並有類型的問題?

回答

2

您正在收到此錯誤,因爲Tugberk的格式化程序僅適用於實現通用接口IEnumerable<T>的模型。這很有意義,因爲人們在獲得一組結果時通常需要CSV格式的數據。如果你只想要一個數據實體,你爲什麼需要CVS格式?

您的方法返回類型爲dynamic,而不是IEnumerable<T>。您可能可以通過做更類似的工作來實現它:

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