I am wondering whether I can use DataContractJsonSerializer to serialize a Structure type, or does it have to be a reference/Class type?
I have the following code:
<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
And yet if I call it on a Structure type, such as a KeyValuePair(Of T1, T2), I get the following error:
Public member 'ToJSON' on type 'KeyValuePair(Of String,Object)' not found.