Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2013, 14:02   #1
Игрок_со_Смертью
 
Регистрация: 06.01.2013
Сообщений: 4
Вопрос Ассоциативный массив или его аналоги?

Приветствую!

Недавно связался с языком c#, поэтому не судите строго если чего не знаю.

В общем суть такая, пишу приложение типа TeamViewer, только намного проще, возникла проблема в передачи данных от сервера к клиенту и обратно, но чтобы информацию передавать её сперва нужно преобразовать в понятный формат, чтобы небыло проблем с разбором.

в общем я решил сделать что то на подобии ассоциативного массива, то есть :

Метка => "Значение",

затем преобразую всё это в строку а потом в массив байт, но возникла проблема как на староне клиента из строки получить обратно такой же формат данных?

Код:
byte[] message;
       //var parameters = new Dictionary<string,string>();
 
        #region Формируем синхронизирующее сообщение для клиента
        //передаём ему ID, 
        //IP адресс сервера,
        //логин и пароль для подкл.чения
        public byte[] SyncMessageToClient(int ID, string serverIP, string userVPN, string passVPN) 
        {
 
            var SyncMessageToClient = new Dictionary<string, string>();//Создаём словарь типа "Метка" => Значение
            SyncMessageToClient.Add("serverIP", serverIP);
            SyncMessageToClient.Add("ID", ID.ToString());
            SyncMessageToClient.Add("userName", userVPN);
            SyncMessageToClient.Add("passVPN", passVPN);
            
           // string syncMessages = SyncMessageToClient.ToString();//Переводим словарь в строку 
           // message = Encoding.UTF8.GetBytes(syncMessages); // переводим строку в массив байт
         
            return message;// возвращяем массив байт
        }
        #endregion
Игрок_со_Смертью вне форума Ответить с цитированием
Старый 06.01.2013, 14:07   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

string syncMessages = SyncMessageToClient.ToString();//Переводим словарь в строку

посмотри чему равняется значение этой строки в отладчике, подивишься (((:
Rififi вне форума Ответить с цитированием
Старый 06.01.2013, 14:35   #3
Игрок_со_Смертью
 
Регистрация: 06.01.2013
Сообщений: 4
По умолчанию

Забавно =)
System.Collections.Generic.Dictiona ry`2[System.String,System.String]

А почему получается так?
Игрок_со_Смертью вне форума Ответить с цитированием
Старый 06.01.2013, 14:49   #4
Игрок_со_Смертью
 
Регистрация: 06.01.2013
Сообщений: 4
По умолчанию

И как тогда быть? какое решение можете предложить?
Игрок_со_Смертью вне форума Ответить с цитированием
Старый 07.01.2013, 18:46   #5
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

можно преобразовать например в JSON
Код:
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize((object)dict);
Reskov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассоциативный массив R_e_n Общие вопросы Delphi 7 19.10.2012 22:55
Ассоциативный массив iMax` Общие вопросы C/C++ 2 03.02.2011 09:37
SOAP и ассоциативный массив Zigmuntfreyd Работа с сетью в Delphi 1 12.07.2010 16:55
ассоциативный массив или что это? Manonia Общие вопросы .NET 0 18.05.2010 07:31
Ассоциативный массив phpcreator Помощь студентам 0 14.05.2010 20:18