Export (0) Print
Expand All

PackageStore.AddPackage Method

Adds a Package to the store.

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

public static void AddPackage(
	Uri uri,
	Package package


Type: System.Uri

The key URI of the package to compare in a PackWebRequest.

Type: System.IO.Packaging.Package

The package to add to the store.


package is null.


packageUri is an invalid package URI.


A package with the specified packageUri is already in the store.

packageUri defines the package's key URI that is compared when you call PackWebRequest.

If the packageUri matches the Uri for a PackagePart in a PackWebRequest call, the package defined in the PackageStore is used to access the requested part.

If the packageUri does not match the Uri for a PackagePart in a PackWebRequest call, the package with the specified URI is opened to access the requested part.

Security Note   This method demands EnvironmentPermission for all custom Package (non-ZipPackage) types.

The following example shows how to use the AddPackage method.

if (rmi.CryptoProvider.CanDecrypt == true)
    ShowStatus("   Decryption granted.");
    ShowStatus("   CANNOT DECRYPT!");

ShowStatus("   Getting the Package from\n" +
           "      the EncryptedPackage.");
_xpsPackage = ePackage.GetPackage();
if (_xpsPackage == null)
    MessageBox.Show("Unable to get Package.");
    return false;

// Set a PackageStore Uri reference for the encrypted stream. 
// ("sdk://packLocation" is a pseudo URI used by 
//  PackUriHelper.Create to define the parserContext.BaseURI 
//  that XamlReader uses to access the encrypted data stream.)
Uri packageUri = new Uri(@"sdk://packLocation", UriKind.Absolute);
// Add the URI package
PackageStore.AddPackage(packageUri, _xpsPackage);
// Determine the starting part for the package.
PackagePart startingPart = GetPackageStartingPart(_xpsPackage);

// Set the DocViewer.Document property.
ShowStatus("   Opening in DocumentViewer.");
ParserContext parserContext = new ParserContext();
parserContext.BaseUri = PackUriHelper.Create(
                            packageUri, startingPart.Uri);
parserContext.XamlTypeMapper = XamlTypeMapper.DefaultMapper;
DocViewer.Document = XamlReader.Load(
    startingPart.GetStream(), parserContext)
        as IDocumentPaginatorSource;

// Enable document menu controls.
menuFileClose.IsEnabled = true;
menuFilePrint.IsEnabled = true;
menuViewIncreaseZoom.IsEnabled = true;
menuViewDecreaseZoom.IsEnabled = true;

// Give the DocumentViewer focus.

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

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

© 2014 Microsoft