[英]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.