【问题标题】:Serialization "Exception has been thrown by the target of an invocation."序列化“调用的目标已抛出异常。”
【发布时间】:2017-08-08 10:55:22
【问题描述】:

几天前,我向question 询问了有关对象序列化的问题,答案很好,实际上它仍然有效。但不知何故,我将序列化函数复制到另一个类,但不适合这里,我不知道为什么。

调用的目标已抛出异常。

内部异常:提供的参数无效。

客户端.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);
    }
}

有什么想法吗?

【问题讨论】:

  • 我很确定您将无法序列化 TcpClient

标签: c# serialization


【解决方案1】:

由于 TcpClient 类不是可序列化的类,因此您不能简单地对其进行序列化。但是正如您所看到的 here 它有一个带有 (string: server, int: port) 的构造函数,因此您可以将这些字段添加到您的类中,然后在反序列化后您可以再次创建它。

Ps:很有趣,我是回答你上一个问题的人,我们又来了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多