Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Dispose Method

Package.Dispose Method

Flushes and saves the content of all parts and relationships, closes the package, and releases all resources.

Namespace:  System.IO.Packaging
Assembly:  WindowsBase (in WindowsBase.dll)

protected virtual void Dispose(
	bool disposing


Type: System.Boolean

true to release both managed and unmanaged resources; false to release only unmanaged resources.

To make sure that all changes are correctly saved, Dispose also finalizes, flushes, and closes all parts and relationships that are contained in the package.

For the Package class, Dispose and Close perform the same operation - there is no reason to call Dispose if you call Close, or vice-versa.

Close and Dispose internally call Flush.

Derived classes that allocate and manage non-memory resources should override this method to release resources when Dispose is called. Derived-class overrides should also call Flush and the base-class Dispose method to make sure that base-class cleanup is always performed.


The using statement (different from the using namespace directive) is the recommended way to Close and Dispose a package. Writing a Package Sample shows how to close and dispose a package by using the using statement.

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
© 2015 Microsoft