В рамках проекта у меня есть класс, производный от NetworkStream.В этом случае он предоставляет свернутые реализации методов, таких как Read и ReadByte, для обеспечения некоторой специфичной для контекста безопасности (он вызывает базовые методы с некоторой дополнительной логикой).
Но тестирование - это проблема.Классу требуется Socket в конструкторе (конкретный тип) и mocking, который не работает для меня (используя Moq здесь, возможно, что-то вроде TypeMock, но я бы хотел избежать дорогостоящих инструментов).
Другая альтернатива можетсоздавать, а не наследовать, и создавать класс, который оборачивает NetworkStream и реализует мой собственный интерфейс, похожий на NetworkStream.Но это тоже проблема.Большинству потребителей потоков в BCL, таких как StreamReader и т. Д., Требуется конкретный Stream или производный тип, и поэтому он не будет работать с моим составным классом.
Итак, кто-нибудь может подумать о каких-либо альтернативах?Это не то, что я бы с радостью оставил без приличного освещения - это та область, где многое может пойти не так, и она должна быть прочной.