通过 TCP/IP 发送 myObject

Send myObject by TCP/IP

我在 TCP/IP 发送 myObject 时遇到问题。

我的ArchMap

public class ArchMap
{
    public string DetalCode { get; set; }
    public List<Arch> Archs { get; set; }
}

Arch

public class Arch
{
    public string ModulName { get; set; }
    public string PartName1 { get; set; }
    [...]
}

我想将此列表发送到 TcpClient,但我不知道如何将我的列表转换为 byte[]。

我试试

   var bf = new BinaryFormatter();
   var ms = new MemoryStream();
   bf.Serialize(ms, xarchList);

但我得到错误:

Additional information: Typ 'Arch_Sender.Model.ArchMap' in Assembly 'ArchSender.Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable

请考虑像这样使用 Serializable 属性:

ArchMap

using using System.Runtime.Serialization;

[Serializable]
public class ArchMap
{
    public string DetalCode { get; set; }
    public List<Arch> Archs { get; set; }
}

Arch

using System.Runtime.Serialization;

[Serializable]
public class Arch
{
    public string ModulName { get; set; }
    public string PartName1 { get; set; }
    [...]
}

更多信息:https://msdn.microsoft.com/en-us/library/ms973893.aspx