你試圖傳遞一個不兼容的數據類型,以你的方法:在您的來電顯示方式您的字典是string, string
類型和你的函數等待string, object
類型的字典。有兩種解決方法:
- 要麼改變你的主要部分字典的簽名
Dim data As New Dictionary(Of String, Object)
- 或簽名更改爲方法的字典參數
ByVal data As Dictionary(Of String, String)
一個可能的解決方案看起來像這樣:
Public Shared Function Create(ByVal data As Dictionary(Of String, String)) As [String]
' Serializes the body into JSON using the fastJSON library.
Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(data)
return json
end function
召喚:
Dim data As New Dictionary(Of String, String)
data.Add("customer", "TEST")
data.Add("secretKeyId", "2222222222222")
data.Add("secretKey", "333333333333333")
Dim dataAsJson = Create(data)
Console.WriteLine(dataAsJson)
輸出:
{"customer":"TEST","secretKeyId":"2222222222222","secretKey":"333333333333333"}
這也將在這種情況下正常工作,創造同樣的結果如上:
Public Shared Function Create(ByVal data As Dictionary(Of String, Object)) As [String]
' Serializes the body into JSON using the fastJSON library.
Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(data)
return json
end function
Dim data As New Dictionary(Of String, Object)
data.Add("customer", "TEST")
data.Add("secretKeyId", "2222222222222")
data.Add("secretKey", "333333333333333")
Dim dataAsJson = Create(data)
Console.WriteLine(dataAsJson)
請了解如何格式化您的問題 - 這可以使用發現[幫助頁面](http://stackoverflow.com/editing-help) – freefaller
你可以擴展「它不工作」;腦力閱讀技能在清潔工中,但爲什麼它在另一個地方是'字典(字符串,字符串)'一個地方和'字典(字符串,對象)'? – Plutonix
我認爲,這是不支持基於這裏的舊答案 - http://stackoverflow.com/questions/2149589/idictionarytkey-tvalue-in-net-4-not-covariant。這有什麼改變嗎? – shahkalpesh