Как можно отправить словарь клиенту с сервера?
Я хочу отправить следующий словарь
Dictionary rates = new Dictionary();
rates.Add("usd", 47.5);
rates.Add("eur", 60.4);
rates.Add("ukp", 78.8);
ОБНОВЛЕНИЕ:
Коды не работают. Где моя проблема?Является ли этот подход неправильным?
Пожалуйста, покажите мне правильный код
код на сервере:
public void GetListn()
{
var dataToSend = new DataToSend { Rates = new Dictionary<string, decimal>() };
dataToSend.Rates.Add("asd", decimal.Parse("12.23"));
dataToSend.Rates.Add("asd", decimal.Parse("41.11"));
dataToSend.Rates.Add("asd", decimal.Parse("25.23"));
var stream = new MemoryStream();
var formatter = new BinaryFormatter();
formatter.Serialize(stream, dataToSend.Rates);
client.Send(stream.ToArray());
}
public class DataToSend
{
public Dictionary<string, decimal> Rates { get; set; }
}
код на клиенте:
private void WindowLoaded(object sender, RoutedEventArgs e)
{
try
{
_server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_server.Connect(_ipep);
_server.Send(Encoding.Unicode.GetBytes("GetList"));
_data = new byte[BufferSize];
_recv = _server.Receive(_data);
var stream = new MemoryStream(_server.Receive(_data));
var formatter = new BinaryFormatter();
var dataToSend = (DataToSend)formatter.Deserialize(stream);
}
catch (Exception exception)
{
MessageBox.Show(exception.Message, "Error", MessageBoxButton.OK,
MessageBoxImage.Error);
}
public class DataToSend
{
public Dictionary<string, string> Rates { get; set; }
}