This documentation is archived and is not being maintained.

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
You cannot use methods in XAML.


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.

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0