Сериализация/десериализация, передача объектов по сети (C#)
От: sleepwalker Россия  
Дата: 13.01.06 04:16
Оценка:
Есть проблемка.
Если откинуть все детали, нада отобразить список файлов и директорий с удаленного компьютера. Там я запускаю виндовый сервис (мой), который по запросу шлет следующую структурку
[Serializable]
public class NetRequest
{
public Command command = Command.ChDir;
public ErrorCode retcode = ErrorCode.OK;
public string Path = ".";
public ArrayList Items = new ArrayList(); //здесь будет список FileInfo объектов
public NetRequest() 
{}
}

вот таким образом (rwstream это NetworkStream)
NetRequest answ = new NetRequest();
BinaryFormatter answFormatter = new BinaryFormatter();
answFormatter.Serialize(rwStream,answer);

В итоге клиент при получении делает так
BinaryFormatter outFormatter = new BinaryFormatter();
NetRequest answ = (NetRequest)outFormatter.Deserialize(rwStream);

Все, в приницпе, уже работает, за исключением того, что на принимающей стороне некоторые поля FileInfo объектов не корректны. Имя файла всегда верно. А вот, например, атрибуты — какая-то лабуда. Например файл может стать директорией. Время модификации от 1601 года и тд.

В чем здесь может быть причина? Это при том что, когда локально происходит коннект(localhost) т.е. и клиент и сервер на одной машине, все структуры выглядят как и должны.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.