Базовый тип и интерфейсы в C#
Свойство BaseType - один шаг вверх по иерархии. Для object оно вернёт null.
Метод GetInterfaces возвращает все интерфейсы типа, включая полученные от базового класса, а не только записанные у самого класса.
Посмотрим на поток в памяти. Печатают имя базового класса и признак, что у потока есть хотя бы один интерфейс:
Type t = typeof(MemoryStream);
Console.WriteLine(t.BaseType!.Name);
Console.WriteLine(t.GetInterfaces().Length > 0);
Для StreamWriter выведите имя непосредственного базового типа.