Cleaning up after yourself (Dispose(void) doesn’t get called for you)

Despite my large and growing number of Dispose-related blogs, I really don’t like writing about Dispose. Or rather, I don’t like that Dispose is in such a confusing state that it requires so much reading material. 🙂 But here we are again. I’d like to start posting some of the common Dispose questions I get,…

1

What does the NeutralResourcesLanguageAttribute do?

NeutralResourcesLanguageAttribute marks the neutral culture for an assembly. That sounds self-referential, but a full description would require another blog post. To avoid getting bogged down, think of neutral culture roughly as the default language. (Fingers crossed that Michael Kaplan doesn’t flame me for that oversimplification.) The NeutralResourcesLanguageAttribute does two things: 1. Can speed up resource probes. First…

5

Making a StreamWriter usable even after given garbage characters

I recently got a question from a customer using a StreamWriter with a UTF-8 encoding. The StreamWriter threw an EncoderFallbackException on an attempt to write “garbage” Unicode characters. For example, on an attempt to write U+DFC9, which is only half of a Unicode character (not a complete surrogate pair) an EncoderFallbackException was thrown. That part seemed fine…

2

When to call Dispose

A recent internal email thread unearthed extreme differences of opinion about when Dispose(void) should be called on an IDisposable. This led to a long discussion and a realization that — while it seems like we’ve said everything there is to say about Dispose — it’s time for some more Dispose guidance. This blog summarizes our…

10