.NET CF 2.0: Stream implements IDisposable ... kind of?
Posted
by mvanbem
on Stack Overflow
See other posts from Stack Overflow
or by mvanbem
Published on 2010-05-18T15:35:13Z
Indexed on
2010/05/18
15:40 UTC
Read the original article
Hit count: 154
I've run into something odd in a .NET CF 2.0 project for Pocket PC 2003 (Visual Studio 2005). I was dealing with a System.IO.Stream
object and found that the IDE wouldn't auto-complete the Dispose()
method. I typed it in manually and received:
'System.IO.Stream.Dispose(bool)' is inaccessible due to its protection level
The error is referring to the protected Dispose(bool)
method. Dispose()
is either private or not present.
Question 1: How is this possible? Stream
implements IDisposable
:
public abstract class Stream : MarshalByRefObject, IDisposable
... and IDisposable
requires a Dispose()
method:
public interface IDisposable
{
void Dispose();
}
I know the compiler won't let me get away with that in my code.
Question 2: Will I cause problems by working around and disposing my streams directly?
IDisposable idisp = someStream;
idisp.Dispose();
The implicit cast is accepted by the compiler.
© Stack Overflow or respective owner