Click here to Skip to main content
15,892,298 members
Home / Discussions / C#
   

C#

 
GeneralRe: Find garbage object in form designer file ? Pin
Member 245846711-Aug-17 21:52
Member 245846711-Aug-17 21:52 
GeneralRe: Find garbage object in form designer file ? Pin
Pete O'Hanlon15-Aug-17 1:40
mvePete O'Hanlon15-Aug-17 1:40 
GeneralRe: Find garbage object in form designer file ? Pin
Member 245846717-Aug-17 19:33
Member 245846717-Aug-17 19:33 
QuestionAsp.net c# Pin
Hrishikeshkamble10-Aug-17 7:13
Hrishikeshkamble10-Aug-17 7:13 
AnswerRe: Asp.net c# Pin
Richard Deeming10-Aug-17 8:33
mveRichard Deeming10-Aug-17 8:33 
QuestionEmbedded image in Resource reported error ? Pin
Member 24584679-Aug-17 22:06
Member 24584679-Aug-17 22:06 
Questionworking around 'using wrapped MemoryStream immutability ? Pin
BillWoodruff9-Aug-17 17:53
professionalBillWoodruff9-Aug-17 17:53 
AnswerRe: working around 'using wrapped MemoryStream immutability ? Pin
Richard Deeming10-Aug-17 1:16
mveRichard Deeming10-Aug-17 1:16 
Disposing a MemoryStream doesn't release any unmanaged resources. It simply sets some flags to indicate that future attempts to read or write the stream should throw an exception.
protected override void Dispose(bool disposing)
{
    try {
        if (disposing) {
            _isOpen = false;
            _writable = false;
            _expandable = false;
            // Don't set buffer to null - allow TryGetBuffer, GetBuffer & ToArray to work.
#if FEATURE_ASYNC_IO
            _lastReadTask = null;
#endif
        }
    }
    finally {
        // Call base.Close() to cleanup async IO resources
        base.Dispose(disposing);
    }
}

Reference Source[^]

Despite the comment about the base method cleaning up async IO resources, it doesn't:
protected virtual void Dispose(bool disposing)
{
    // Note: Never change this to call other virtual methods on Stream
    // like Write, since the state on subclasses has already been 
    // torn down.  This is the last code to run on cleanup for a stream.
}

Reference Source[^]

But I know what you mean - it doesn't feel right to omit the using statement. Smile | :)

Perhaps a helper method to create the stream might help to hide the unpleasantness?
C#
private static MemoryStream CreateStream(byte[] rawBytes, IEnumerable<Func<MemoryStream, MemoryStream>> decorators)
{
    var result = new MemoryStream(rawBytes);
    
    foreach (Func<MemoryStream, MemoryStream> decorator in decorators)
    {
        result = decorator(result);
        result.Position = 0;
    }
    
    return result;
}

...

var decorators = new List<Func<MemoryStream, MemoryStream>>();
if (useDecryption) decorators.Add(decryptor);
if (useDecompression) decorators.Add(decompressor);

using (MemoryStream mstream = CreateStream(File.ReadAllBytes(filepath), decorators))
{
    result = (T)dcs.ReadObject(mstream);
}




"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer


GeneralRe: working around 'using wrapped MemoryStream immutability ? Pin
BillWoodruff10-Aug-17 3:47
professionalBillWoodruff10-Aug-17 3:47 
GeneralRe: working around 'using wrapped MemoryStream immutability ? Pin
Richard Deeming10-Aug-17 4:01
mveRichard Deeming10-Aug-17 4:01 
QuestionEntity Framework 4 mapping problems Pin
Member 109427609-Aug-17 13:19
Member 109427609-Aug-17 13:19 
AnswerRe: Entity Framework 4 mapping problems Pin
Gerry Schmitz11-Aug-17 5:55
mveGerry Schmitz11-Aug-17 5:55 
GeneralRe: Entity Framework 4 mapping problems Pin
Member 1094276011-Aug-17 9:11
Member 1094276011-Aug-17 9:11 
Questionquery to retrieve Gujarati Pin
Member 129573749-Aug-17 0:44
Member 129573749-Aug-17 0:44 
AnswerRe: query to retrieve Gujarati Pin
Afzaal Ahmad Zeeshan9-Aug-17 0:53
professionalAfzaal Ahmad Zeeshan9-Aug-17 0:53 
AnswerRe: query to retrieve Gujarati Pin
BillWoodruff9-Aug-17 15:44
professionalBillWoodruff9-Aug-17 15:44 
QuestionC# writing to a csv file, adds an extra column Pin
Member 128805958-Aug-17 23:22
Member 128805958-Aug-17 23:22 
AnswerRe: C# writing to a csv file, adds an extra column Pin
Richard Deeming9-Aug-17 1:08
mveRichard Deeming9-Aug-17 1:08 
GeneralRe: C# writing to a csv file, adds an extra column Pin
Member 128805959-Aug-17 5:23
Member 128805959-Aug-17 5:23 
QuestionHow to implement an existing methods in Visual Studio? Pin
gcobza20105-Aug-17 3:56
gcobza20105-Aug-17 3:56 
AnswerRe: How to implement an existing methods in Visual Studio? Pin
OriginalGriff5-Aug-17 4:40
mveOriginalGriff5-Aug-17 4:40 
AnswerRe: How to implement an existing methods in Visual Studio? Pin
Dave Kreskowiak5-Aug-17 7:11
mveDave Kreskowiak5-Aug-17 7:11 
QuestionWhy do libraries not help me? If I want to write parameter like myapp.exe -param1 <value> -param2 <value> .. Pin
Jens Eckervogt 4-Aug-17 13:53
Jens Eckervogt 4-Aug-17 13:53 
AnswerRe: Why do libraries not help me? If I want to write parameter like myapp.exe -param1 <value> -param2 <value> .. Pin
Richard Andrew x644-Aug-17 14:56
professionalRichard Andrew x644-Aug-17 14:56 
GeneralRe: Why do libraries not help me? If I want to write parameter like myapp.exe -param1 <value> -param2 <value> .. Pin
Jens Eckervogt 4-Aug-17 23:22
Jens Eckervogt 4-Aug-17 23:22 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.