У меня есть класс, который оборачивает поток с намерением, чтобы этот поток, вероятно, был NetworkStream.Однако в модульном тестировании гораздо проще использовать MemoryStream для проверки работоспособности.Однако я заметил, что MemoryStream и NetworkStream на самом деле не действуют одинаково при записи.
Когда я пишу в MemoryStream, указатель поиска потока устанавливается в конец того, что я написал.Чтобы прочитать то, что я написал, мне нужно настроить указатель поиска на начало того, что я написал.
Когда я пишу в NetworkStream, другой конец потока может читать эти данные без настройки поискауказатель.
Я предполагаю, что NetworkStream внутренне обрабатывает концепцию указателя поиска и следит за тем, чтобы, даже заполняя данные в поток на другой стороне, он не корректировал указатель.
Мой вопрос в том, как лучше всего высмеять такое же поведение в MemoryStream?Я подумал, что могу просто найти указатель обратно на то же количество байтов, которое я пишу, но это кажется грязным.Кроме того, если я соберу несколько этих потоков вместе или другие обернутые потоки, как они узнают, требуется ли сброс указателя или нет?