У меня есть список объектов, и я хочу отправить его с мыслью о соединении через сокет TCP. Одним из способов является получение списка объектов и получение всех значений, разделяющих их запятыми и получающими данными, а с другой стороны и значения в объекте. Могу ли я отправить список объектов, как это можно сделать в веб-сервисе WCF. Это так, вы можете показать мне, как? Спасибо!
Я уже создал службу WCF для этого, но изменил ее, поскольку в ней есть несколько проблем, которые не могут быть решены. Итак, я создаю это приложение клиент-сервер.
Кроме того, отправляемые данные обновляются каждые несколько секунд, и это потребуется многим пользователям. После некоторых исследований я обнаружил, что это был бы лучший вариант.
У меня есть этот класс, с которым я отправлял свои сообщения через
public void SendMessage(string text)
{
Byte[] bytesSent = Encoding.UTF8.GetBytes(text);
SocketAsyncEventArgs writeEventArgs = new SocketAsyncEventArgs();
writeEventArgs.SetBuffer(bytesSent, 0, bytesSent.Length);
socket.SendAsync(writeEventArgs);
}
Но я бы предпочел сначала сериализовать объект, а затем отправить его. Итак, у меня есть поток и мне нужно в качестве байтового массива.
Это то, что я должен получить данные:
void ReceiveData()
{
try
{
int recv;
string stringData;
while (true)
{
recv = socket.Receive(data);
stringData = Encoding.ASCII.GetString(data, 0, recv);
if (stringData == "bye")
break;
ClientDataRecievedEventArgs sd = new ClientDataRecievedEventArgs(stringData);
DataRecieved(this, sd);
}
stringData = "bye";
byte[] message = Encoding.ASCII.GetBytes(stringData);
socket.Send(message);
socket.Close();
this.Dispose();
return;
}
catch (Exception)
{
socket.Close();
this.Dispose();
}
}
Я хочу использовать это:
SoapFormatter formatter = new SoapFormatter();
foreach (Communication.Client Client in server.ClientList)
{
foreach (ObjectLibrary.Model.PIP p in Repository.GlobalRepository.PIPInformation)
{
formatter.Serialize(stream, p);
Client.SendMessage(stream);
}
}
Как инициализировать поток?
Мне нужно получить данные как Stream, чтобы десериализовать их в Object.
Итак, у меня есть список объектов. Могу ли я сериализовать целый список?