2010-11-08 4 views
0

Я работаю над простым сетевым проектом и хочу передавать объекты напрямую с помощью соединения TCPListener/Client. Я хотел бы избежать накладных расходов WCF и просто иметь простой способ сериализации объекта на выходе, отправки его по сети и, наконец, восстановления его обратно на оригинал на другом конце.Сериализация объектов и создание сетей в C#

Thanks

ответ

2

Remoting является немилость теперь, что есть WCF. WCF очень оптимизирован для производительности и в большинстве случаев получит преимущество над удалением. См. http://msdn.microsoft.com/en-us/library/bb310550.aspx. Вы не упоминаете, беспокоитесь ли вы о нехватке времени выполнения или окладных данных о том, как использовать WCF. При этом вы можете сократить накладные расходы во время выполнения, используя двоичный TCP-транспорт вместо HTTP. Он работает хорошо, хотя HTTP (SOAP), конечно, очень популярен сейчас. Ваша служба может поддерживать несколько транспортов (т. Е. TCP и HTTP), чтобы хорошо работать с клиентами .NET (транспорт TCP) и другими клиентами, совместимыми со стандартами (транспорт HTTP SOAP).

0

Ну, если вам нужно только поведение сериализации/десериализации без привлечения WCF или Remoting, существует большое количество способов:

  1. Стандартные сериализации с помощью SerializableAttribute и BinaryFormatter
  2. XML Serialization
  3. Json.NET
  4. Протокола от Google Буферы через ProtoBuf.NET

Все подходы имеют сильные и слабые стороны, но я считаю, что для ваших нужд № 1 будет достаточно. Разумные компактные и без внешних библиотек.

Смежные вопросы