Мне интересно, могу ли я использовать DataContractJsonSerializer для сериализации типа структуры, или это должен быть ссылочный тип / тип класса?
У меня есть следующий код:
<Extension()> Public Function ToJSON(ByVal target As Object) As String
Dim serializer = New System.Runtime.Serialization.Json.DataContractJsonSerializer(target.GetType)
Using ms As MemoryStream = New MemoryStream()
serializer.WriteObject(ms, target)
ms.Flush()
Dim bytes As Byte() = ms.GetBuffer()
Dim json As String = Encoding.UTF8.GetString(bytes, 0, bytes.Length).Trim(Chr(0))
Return json
End Using
End Function
И все же, если я вызываю его для типа Structure, такого как KeyValuePair (Of T1, T2), я получаю следующую ошибку:
Открытый член 'ToJSON' для типа 'KeyValuePair (Of String, Object)' не найден.