簡體   English   中英

在UWP應用程序中序列化對象

[英]Serialize object in UWP app

我試圖通過StreamSocket傳遞一個對象,所以我需要序列化它才能做到這一點。

我查看了BinaryFormatter ,但在UWP中似乎沒有? 有關如何序列化對象的任何建議,最好是以最緊湊的方式。

您可以序列化自己的.NET對象; JSON.NET是一個非常受歡迎的選擇,但如果您不需要任何依賴項,內置的DataContractSerializer也應該可以使用。

您無法序列化任何WinRT對象。

如果要將對象序列化為json,首先必須將Newtonsoft.Json添加到項目中。

要安裝Json.NET,請在程序包管理器控制台中運行以下命令:

PM>安裝包Newtonsoft.Json

然后使用此代碼傳遞您的對象:

(注意:在此示例中,我假設您的服務器和客戶端相同,並且您使用的端口是:1800。)

        try
        {
            Windows.Networking.Sockets.StreamSocket socket = new Windows.Networking.Sockets.StreamSocket();
            Windows.Networking.HostName serverHost = new Windows.Networking.HostName("127.0.0.1");
            string serverPort = "1800";
            socket.ConnectAsync(serverHost, serverPort);
            var json = JsonConvert.SerializeObject(object);
            byte[] buffer = Encoding.UTF8.GetBytes(json);
            Stream streamOut = socket.OutputStream.AsStreamForWrite();
            StreamWriter writer = new StreamWriter(streamOut);
            var request = json;
            writer.WriteLine(request);
            writer.Flush();

            Stream streamIn = socket.InputStream.AsStreamForRead();
            StreamReader reader = new StreamReader(streamIn);
            string response = reader.ReadLine();
        }
        catch (Exception e)
        {
            var err = e.Message;
            //Handle exception here.            
        }

如果您有任何其他問題,請通知我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM