2013-05-21 71 views
0

我使用的結構如下:試圖將整個結構轉換爲字符串在ASP.NET

Structure USERREC 
    Public UserRecID As Integer 
    Public CompanyRecID As Integer 
    Public Username As String 
    Public LoggedInTime As DateTime 
    Public UserIsLocked As Boolean 
    Public UserFirstName As String 
    Public UserLastName As String 
    Public UserEmail As String 
    ... deleted for simplicity ... 
End Structure 

當我實例化這個類型到一個變量(Dim ThisUserRec As USERREC = (data routine)),我可以打破代碼並進入立即窗口和簡單地鍵入"? ThisUserRec"和我看到每一個元件的一個很好的顯示在所述結構

? ThisuserRec 
{USERREC} 
    UserFirstName: "Alex              " 
    UserIsDeleted: False 
    UserIsLocked: False 
    UserIsOwnerMgr: False 

予移除在此實例中的安全性和簡單性的目的的元件。

所以,我很想將整個結構作爲字符串保存到審計表中。我希望有一些簡單的方法,如

Dim ThisUserRecString as String = ThisUserRec 

但當然,我知道這是行不通的。

有人知道一種快速的方法來將結構的內容轉儲到字符串中嗎?或者一個HTML表格?

+0

在這個看一看,看看是否有幫助http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx?cs -save-lang = 1&cs-lang = vb#code-snippet-2 你在找什麼是某種序列化,這是用於JSON序列化,它非常輕便易於閱讀 –

回答

0

你可以輕鬆地序列化到JSon與DataContractJsonSerializer

這傢伙有一個很好的例子:How can I make DataContractJsonSerializer serialize an object as a string?

我把它轉換到VB

Private Function ToJson(Of T)(data As T) As String 
    Dim serializer As New DataContractJsonSerializer(GetType(T)) 

    Using ms As New MemoryStream() 
     serializer.WriteObject(ms, data) 
     Return Encoding.[Default].GetString(ms.ToArray()) 
    End Using 
End Function 

就這樣稱呼它

ToJson(Of USERREC)(object) 

不要忘了導入庫

Imports System.Runtime.Serialization.Json 
Imports System.IO 
Imports System.Text 

並使其可序列化

<Serializable()> _ 
+0

這很棒,謝謝。它可能是馬虎,但信息在那裏,這就是我需要的。可悲的是,我沒有足夠的聲望投票。 – Ron

+0

@不錯!你應該能夠檢查它作爲答案 –