2017-08-08 75 views
0

前幾天我問了一個關於對象序列化的question,答案運行良好,實際上它仍然有效。但不知何故,我已經將serialize函數複製到另一個類,但不適合在這裏,我不知道爲什麼。序列化「調用的目標引發了異常。」

異常已被調用的目標拋出。

內部例外:提供了一個無效的參數。

Client.cs

public class Client 
{ 
    private string username; 
    public string Username 
    { 
     get { return username; } 
     set { username = value; } 
    } 
    private TcpClient tclient; 
    public TcpClient tClient 
    { 
     get { return tclient; } 
     set { tclient = value; } 
    } 
    public Client() 
    {} 

    public string Serialize(object obj) 
    { 
     var serializer = new JavaScriptSerializer(); 
     return serializer.Serialize(obj); 
    } 
    public object Deserialize(string json) 
    { 
     var serializer = new JavaScriptSerializer(); 
     return serializer.Deserialize<object>(json); 
    } 
} 

任何想法?

+3

我很確定你不能序列化一個'TcpClient'。 –

回答

0

由於TcpClient類不是一個可序列化的類,因此不能簡單地序列化它。但正如你可以看到here它有一個構造函數(string:server,int:port),所以你可以添加這些字段到你的類,然後反序列化後,你可以再次創建它。

Ps:有趣的是,我是一個回答你的上一個問題,這裏我們再次。

+0

aww謝謝!你再一次拯救了我的一天 – solohane

相關問題