Есть ли битбакет в COM? Что-то вроде .NET System.IO.Stream.Null?

Я знаю об объекте ADODB.Stream.

Но что мне действительно нужно, так это поток, для которого вызовы Write() не выполняются. Как System.IO.Stream.Null . Я думаю, что ADODB.Stream больше похож на MemoryStream, который накапливает данные в памяти.

И я не могу создать экземпляр System.IO.Stream.Null из COM, потому что это статическое свойство класса Stream, поэтому недоступен из COM. Или я могу? (без написания класса-оболочки)


person Cheeso    schedule 08.09.2009    source источник
comment
Как вы хотите использовать этот нулевой поток? ADODB.Stream реализует IStream (стандартный потоковый интерфейс COM), а также удобный для сценариев потоковый интерфейс. В зависимости от того, какой интерфейс вы хотите использовать, существуют разные варианты.   -  person Kim Gräsman    schedule 09.09.2009
comment
Вы всегда можете открыть реальный файловый поток на nul:   -  person Remus Rusanu    schedule 09.09.2009
comment
Я хочу использовать его в сценарии.   -  person Cheeso    schedule 09.09.2009


Ответы (1)


Такой реализации по умолчанию нет. Однако если предположить, что код, которому нужен этот поток, будет использовать IStream, вы можете взять существующий экземпляр IStream и обернуть его собственной реализацией IStream, при этом вызовы CopyTo/Write реализованы как неоперативные. Создание простого COM-объекта для такой оболочки должно быть относительно тривиальным.

person Franci Penov    schedule 08.09.2009