0
DataContractJsonSerializer를 사용하여 구조체 형식을 serialize 할 수 있는지 또는 참조/클래스 형식이어야하는지 궁금합니다.VB.NET에서 Structure와 함께 확장 방법을 사용할 수 있습니까?
나는 다음과 같은 코드가 있습니다
<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
그리고 아직 나는 그런 KeyValuePair (T1, T2의) 등의 구조 형식에 전화를하면, 나는 다음과 같은 오류 얻을 :
을Public member 'ToJSON' on type 'KeyValuePair(Of String,Object)' not found.
음 ... 이상합니다. 당신이 옳습니다, 그것이 문제였습니다. 이것은 나에게 내가 깨닫지 못했던 다른 것을 가르쳐 주었다. 이 확장은 DLL의 공용 모듈에서 공용 함수였습니다. 파일 상단의 Import 문을 통해 aspx.vb 파일에 DLL/네임 스페이스를 가져 왔는데이 오류가 발생했습니다. web.config에서'\ system.web \ pages \ namespaces' 가져 오기와 같은 가져 오기를 추가 한 다음 정상적으로 작동합니다. 분명히 ASP.NET에서는 VB 파일의 Import 문을 통하지 않고 web.config를 통해 네임 스페이스를 가져와야합니까? 이상한. – eidylon