Сериализация / десериализация - C#

Узнай цену своей работы

Формулировка задачи:

доброе время суток=) такое задание - отправить объект класса с приложения клиента на сервер это код который сериализует на клиенте
                Car car3 = new Car();
                MemoryStream memStream = new MemoryStream();
                XmlSerializer serializer = new XmlSerializer(typeof(Car));
                serializer.Serialize(memStream, car3);
                memStream.Close();
                msg = memStream.GetBuffer();
                bytesSent = snd.Send(msg);
Смотрел примеры в нэте но все равно что-то не так. чтоб убедиться что сериализация работает, на сервере пока что принимаю сообщение в виде строки. присылается код XML в котором записан мой объект. помогите с десериализовать

Решение задачи: «Сериализация / десериализация»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Text;
////
using System.Net;
using System.Net.Sockets;
using System.Xml.Serialization;
using System.IO;
 
namespace Server2
{
    class Program
    {
        static string str2;
        static void Main(string[] args)
        {
            Console.Write("Запуск программы.\n");
            string host = Dns.GetHostName();
            IPHostEntry ipHost = Dns.GetHostEntry(host);
            IPAddress[] ipAddr = ipHost.AddressList;
            //Console.Write("Используемый IP - {0}", ipAddr);
            for (int i = 0; i < ipAddr.Length; i++)
            {
                string str;
                str = ipAddr[i].ToString();
                Console.Write("IP {0} = {1}\n", i, str);
            }
            Console.Write("Введите номер IP адресса который желаете использовать\n");
            string numIPstr;
            numIPstr = Console.ReadLine();
            int numIP;
            numIP = Convert.ToInt32(numIPstr);
            Console.Write("Ваш выбор IP номер {0}.\n", numIP);
            str2 = ipAddr[numIP].ToString();
 
            IPEndPoint ipEndPoint = new IPEndPoint(ipAddr[numIP], 11000);
 
            //
            Socket sListener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
 
            //
            try
            {
                sListener.Bind(ipEndPoint);
                sListener.Listen(10);
                while (true)
                {
                    Console.WriteLine("Ожидаем подключение на порт {0}", ipEndPoint);
                    Socket handler = sListener.Accept();
                    string data = null;
                    while (true)
                    {
                        byte[] bytes = new byte[1024];
                        int byteRec = handler.Receive(bytes);
                        data = Encoding.ASCII.GetString(bytes, 0, byteRec);
 
                        XmlSerializer serialiser = new XmlSerializer(typeof(Trasporter));
                        Trasporter s = (Trasporter)serialiser.Deserialize(new MemoryStream(Encoding.UTF8.GetBytes(data)));
                        Console.Write("Наш элемент -->\r\n" + s.ToString());
 
                        if (data.IndexOf("<TheEnd>") > -1)
                        {
                            break;
                        }
                    }
                    Console.WriteLine("Text Received: {0}", data);
 
                    string theReply = "Thank you for " + data.Length.ToString() + " characteries...";
                    byte[] msg = Encoding.ASCII.GetBytes(theReply);
 
                    handler.Send(msg);
                    handler.Shutdown(SocketShutdown.Both);
                    handler.Close();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }
 
    [Serializable]
    public class Trasporter
    {
        //набор данных для владельца
        public string itsRnnOwner;// { get; set; }
        public string itsSurname;// { get; set; }
        public string itsName;// { get; set; }
        public string itsTelNumber;// { get; set; }
        public string itsSex;// { get; set; }
        public string itsBirstDay;// { get; set; }
        public string itsPost;// { get; set; }
        //набор данных для автомобиля 
        public string itsNumCar;// { get; set; }
        public string itsNumEngine;// { get; set; }
        public string itsNumChassie;// { get; set; }
        public string itsDateOutput;// { get; set; }
        public string itsCodeDistrict;// { get; set; }
        public string itsCodeBrand;// { get; set; }
        public string itsCodeBodyCar;// { get; set; }
        public string itsCodeColor;// { get; set; }
        //public string itsRnnOwner;
 
        public Trasporter()
        {
            itsRnnOwner = "none";
            itsSurname = "none";
            itsName = "none";
            itsTelNumber = "none";
            itsSex = "none";
            itsBirstDay = "none";
            itsPost = "none";
 
            itsNumCar = "none";
            itsNumEngine = "none";
            itsNumChassie = "none";
            itsDateOutput = "none";
            itsCodeDistrict = "none";
            itsCodeBrand = "none";
            itsCodeBodyCar = "none";
            itsCodeColor = "none";
            //itsRnnOwner = "none";
        }
 
        public void InputDataOwner(string rnn, string surname, string name, string phone, string sex, string birstday, string post)
        {
            itsRnnOwner = rnn;
            itsSurname = surname;
            itsName = name;
            itsTelNumber = phone;
            itsSex = sex;
            itsBirstDay = birstday;
            itsPost = post;
        }
 
        public void InputDataCar(string numcar, string numengine, string numchassie, string dataoupput, string district, string brand, string bodycar, string color, string rnn)
        {
            itsNumCar = numcar;
            itsNumEngine = numengine;
            itsNumChassie = numchassie;
            itsDateOutput = dataoupput;
            itsCodeDistrict = district;
            itsCodeBrand = brand;
            itsCodeBodyCar = bodycar;
            itsCodeColor = color;
            itsRnnOwner = rnn;
        }
 
        public override string ToString()
        {
            return
                "RRN = " + itsRnnOwner
                + "\r\nSurname = " + itsSurname
                + "\r\nName = " + itsName
                + "\r\nPhone number = " + itsTelNumber
                + "\r\nSex = " + itsSex
                + "\r\nBirstday = " + itsBirstDay
                + "\r\nPost = " + itsPost
 
                + "\r\nNumber car = " + itsNumCar
                + "\r\nNumber engine = " + itsNumEngine
                + "\r\nNumber chassie = " + itsNumChassie
                + "\r\nDate output = " + itsDateOutput
                + "\r\nDistrict = " + itsCodeDistrict
                + "\r\nBrand = " + itsCodeBrand
                + "\r\nBodycar = " + itsCodeBodyCar
                + "\r\nColor = " + itsCodeColor
                //+ "\r\nRNN = " + itsRnnOwner
                + "\r\n"; ;
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.5 из 5
Похожие ответы